我想用row_number()
窗口函数添加max或其他东西来保留表中最新的甚至是重复的记录。我该如何修改代码?这个函数删除了所有重复的记录。
到目前为止,我尝试了下面的陈述:
DELETE FROM employee
WHERE employee_id IN (SELECT employee_id
FROM (SELECT employee_id,
ROW_NUMBER()
OVER (PARTITION BY employee_id
ORDER BY employee_id) AS row_num
FROM employee) t
WHERE row_num > 1)
1条答案
按热度按时间vvppvyoh1#
您的示例中的问题是,您使用
employee_id IN (...)
进行删除,因此它总是删除具有此编号的每个员工,您需要按行号删除。这里是一个例子,为您的情况下,请让我知道,如果它的工作你:)