我有一个包含许多重复行的表。我可以摆脱那些:
DELETE FROM files
WHERE id IN (
SELECT id
FROM (SELECT id, ROW_NUMBER() OVER (partition BY name, active, filesize, start_timestamp, end_timestamp ORDER BY id) AS rnum
FROM files) t
WHERE t.rnum > 1);
大部分时间都可以正常工作,但是我有很多行,其中filesize和end_timestamp会发生变化,但所有剩余的数据都保持不变。我想要做的是当存在重复记录时,将最小文件大小和end_timestamp的记录的活动属性更改为false。
我只是有一个时刻,似乎无法弄清楚如何做到这一点。