查询一张表中是否有重复数据行
业务情景: 查询一张表中是重复数据;或者统计有几个列是否存在重复。
查询sql
按照某些字段进行分组统计
,例如,可以按照主键
等进行分组,就能统计是否有重复行。语句如下:
select A,B from table1 group by A,B having count(*) > 1;
案例分析
分析
kx_kq_channelsupplier
表中是否存在channelid
有多个isdefault=1
的行
SELECT channelid, isdefault FROM kx_kq_channelsupplier GROUP BY channelid, isdefault HAVING COUNT (*) > 1 AND isdefault = 1;
channelid | isdefault |
---|---|
976347609855823872 | 1 |
975650518674313216 | 1 |
975650518296825856 | 1 |
结果:确实存在三条这样的记录;这样的记录在数据库中就是可能是脏数据
,从而影响程序的正确性。