我怎么能unique row id不unique row id存在?
我的桌子是
col1 col2 col3 col4 col5 col6 col7
john 1 1 1 1 1 1
john 1 1 1 1 1 1
sally 2 2 2 2 2 2
sally 2 2 2 2 2 2
Run Code Online (Sandbox Code Playgroud)
我希望在重复删除后留下以下内容:
john 1 1 1 1 1 1
sally 2 2 2 2 2 2
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些查询,但我认为它们依赖于行ID,因为我没有得到理想的结果.例如:
DELETE
FROM table
WHERE col1 IN (
SELECT id
FROM table
GROUP BY id
HAVING (COUNT(col1) > 1)
)
Run Code Online (Sandbox Code Playgroud) 我对这些之间的差异感到困惑.运行以下SQL会获得两个完美的结果集.有人可以解释一下这些差异吗?
SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
Run Code Online (Sandbox Code Playgroud) 使用 Postgresql 10 中新的 IDENTITY 类型,我想知道是否有类似于ROWIDSQLite 中的伪列来获取主键。
我想做类似的事情:
SELECT ROWID FROM Table
Run Code Online (Sandbox Code Playgroud)
在 Postgresql 中并获取主键。
编辑:这不是这个问题的重复,因为ROWID在 Oracle 中不给你主键。