我有以下数据:SQL查询保留最多2个重复记录
Name ID Date
Dave | 123 | 1-2-2011
Jim | 123 | 1-3-2011
Mike | 123 | 1-10-2011
Bill | 111 | 1-2-2011
Henry | 222 | 1-3-2011
Larry | 222 | 1-4-2011
我需要删除查询此降低:
Jim | 123 | 1-3-2011
Mike | 123 | 1-10-2011
Bill | 111 | 1-2-2011
Larry | 222 | 1-4-2011
即我想保留两个最新记录为每个ID。
我尝试这样做:
Delete FROM UserTable a
WHERE
Date <> (SELECT MAX(Date) FROM UserTable b WHERE a.ID = b.ID)
AND ID IN (SELECT ID FROM UserTable GROUP BY ID HAVING COUNT(*) > 1)
但只保留最新的1分独特的记录。
我不是你问清楚的记录。 “2个最新记录是重复的”是什么意思?什么将记录定义为“独特”(不应该以某种方式通过唯一记录来记录所有记录?我不明白为什么Dave的记录不在输出中,而Bill则是。 – 2014-10-08 14:03:31
在问题中包含您的查询会有帮助 – 2014-10-08 14:04:22
我认为该帖子要求为每个(col2)最近的2个条目(col3)组成一个集合,但我不确定这个主题与此有什么关系,因为5可能因记录数量而异。 。 – xQbert 2014-10-08 14:06:40