使⽤SQL语句对重复记录查询、统计重复次数、删除重复数据上周⼯作中数据库中出现了N多重复记录的情况,导致联合查询时数据异常。由于数据是客户提供的,当时并没有提供唯⼀标识列,⽽且也没预料到会出现重复数据。哎,⼤意了。后来对表中的数据进⾏了⼀次重复查询。
1、查表中重复记录,重复记录是根据单个字段来判断,并统计重复次数
distinct查询
SELECT [字段],COUNT(0) AS 重复次数 FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1
2、删除表中多余的重复记录,重复记录是根据单个字段来判断,只留有rowid最⼩的记录
DELETE FROM [表名] WHERE [字段] IN ( SELECT [字段] FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1 )
AND rowid NOT IN ( SELECT MIN(rowid) FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1 )
3、查询⽆重复记录,根据单个字段查询
SELECT DISTINCT [字段] FROM [表名] ORDER BY [字段] DESC
PS:⾎淋淋的教训,不管别⼈提供的数据⾥⾯否真的都是唯⼀的,⼀定要唯⼀主键或标识列

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。