查询一张表中是否有重复数据行

查询一张表中是否有重复数据行

业务情景: 查询一张表中是重复数据;或者统计有几个列是否存在重复。


查询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

结果:确实存在三条这样的记录;这样的记录在数据库中就是可能是脏数据,从而影响程序的正确性。

你可能感兴趣的:(sqlserver)