【发布时间】:2021-06-27 06:14:15
【问题描述】:
我有一个 id 作为 pk 的 bill 表和一个 billno 列,我应该从中删除重复项
总行数 (62924)
select count(billno) from bill
唯一的 billno (59704),因此需要删除 3220 行
select count(distinct billno) from bill
查询以获取重复项 (3220)
select count(*) from bill
WHERE bill.billno IN (SELECT billno
FROM bill
GROUP BY billno HAVING COUNT(*) > 1)
AND bill.company_code like '1'
但是,当我按 id 删除重复项时,总数不相符:-
删除重复行后计数 (61385) => 应在此处获取 59704..
select count (*) from bill
where bill.id not in
(
select id from bill
WHERE bill.billno IN (SELECT billno
FROM bill
GROUP BY billno HAVING COUNT(*) > 1)
AND bill.company_code like '1'
)
我能知道为什么会这样吗?
【问题讨论】:
标签: sql postgresql duplicates primary-key