sql 查询重复数据 删除重复数据

select SERVICE_ID,STANDARD_YEAR,count(*)
from DZBLPJ.INSURANCE_SERVER_ITEM  group by SERVICE_ID,STANDARD_YEAR
delete from DZBLPJ.INSURANCE_SERVER_ITEM a
where (SERVICE_ID,STANDARD_YEAR) in (select SERVICE_ID,STANDARD_YEAR
from DZBLPJ.INSURANCE_SERVER_ITEM  group by SERVICE_ID,STANDARD_YEAR having count(*) > 1)
and rowid not in (select min(rowid) from DZBLPJ.INSURANCE_SERVER_ITEM
group by SERVICE_ID,STANDARD_YEAR having count(*)>1)
DELETE 
FROM
    LCFYJTTZ c 
WHERE
    EXISTS (
        SELECT
            a.ROWID 
        FROM
            LCFYJTTZ a,
            (
            SELECT
                fdate,
                ffjdm,
                flcdm,
                ffytype,
                fgsbz,
                MIN( ROWID ) rid 
            FROM
                lcfyjttz 
            GROUP BY
                fdate,
                ffjdm,
                flcdm,
                ffytype,
                fgsbz 
            HAVING
                count( 1 ) > 1 
            ) b 
        WHERE
            a.FDATE = b.FDATE 
            AND a.FFJDM = b.FFJDM 
            AND a.FLCDM = b.FLCDM 
            AND a.ffytype = b.FFYTYPE 
            AND a.ROWID != b.rid
            AND c.ROWID = a.ROWID 
    )

-------------------------------------------------------------------------
## 极客时间全网最便宜最优惠购买方式,优惠券返现 百度网盘 微信关注公众号“选门好课”
扫描下方二维码关注我的公众号"选门好课",与我一起交流知识
原文地址:https://www.cnblogs.com/singworld/p/14865514.html