gpt4 book ai didi

mysql - 使用嵌套选择删除重复记录

转载 作者:行者123 更新时间:2023-11-29 18:00:51 24 4
gpt4 key购买 nike

从下表中,

enter image description here

如何查询下面的输出?

enter image description here

我最初的查询是:

select
bpai.sequence_id, bpai.last_name, bpai.given_name,
bpai.middle_name, bpai.middle_initial,
bpai.gender, bpai.birth_date, bpai.birth_place_via_psgc, bpai.citizenship,
bpai.primary_mobile_number, bpai.primary_email_address, count(*)
from bpaitbl bpai
inner join (select
*, count(*) as countof
from bpaitbl
group by
last_name, middle_name,
gender, birth_date, citizenship
having (count(*) > 1)
) profil on bpai.last_name like profil.middle_name
and bpai.gender = profil.gender
and bpai.birth_date = profil.birth_date
and bpai.citizenship = profil.citizenship
;

无论如何我都无法输出。请帮忙。

最佳答案

由于您没有在问题中说,而是在标题中提到结果集代表什么,所以我认为您想要一个包含重复记录的行列表。

以下查询将列出所有具有重复记录的记录,显示重复项中具有最高sequence_id的记录:

SELECT
a.sequence_id,
a.last_name,
a.given_name,
a.middle_name,
a.gender,
a.birth_date,
a.citizenship
FROM bpaitbl a
LEFT JOIN bpaitbl b
ON a.last_name = b.last_name AND
a.given_name = b.given_name AND
a.middle_name = b.middle_name AND
a.gender = b.gender AND
a.birth_date = b.birth_date AND
a.citizenship = b.citizenship AND
a.sequence_id > MAX(b.sequence_id)
WHERE b.sequence_id IS NULL;
GROUP BY
a.last_name,
a.given_name,
a.middle_name,
a.gender,
a.birth_date,
a.citizenship

要显示具有最低sequence_id的记录,请更改>< 。如果您想要所有行,包括那些没有重复项的行,请删除 where 子句。

关于mysql - 使用嵌套选择删除重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com