【发布时间】:2020-07-20 17:31:03
【问题描述】:
这段代码给了我一个唯一值的表(没有重复):
SELECT id, firstname, lastname, startdate, position
FROM (
SELECT id, firstname, lastname, startdate, position,
ROW_NUMBER() OVER (PARTITION BY (firstname, lastname) ORDER BY startdate DESC) rn
FROM people
) tmp
WHERE rn = 1;
什么语法会用这个表的结果替换当前表?
或者,我可以使用WHERE rn <> 1 来获取我想要删除的所有数据,但是我再次努力使用这种方法来获取DELETE 的语法。
【问题讨论】:
-
我认为这个问题需要更多的思考和信息。我在示例中没有看到
DELETE。此外,您似乎想做一个INSERT或UPDATE("什么语法会用这个结果替换当前表?") 当前表是什么? -
如果您忽略“缓慢”问题,这是对问题和答案中几个不同选项的很好讨论:stackoverflow.com/questions/47402098/…
标签: postgresql duplicates sql-delete temp-tables row-number