gpt4 book ai didi

sql - 显示所有重复的行

转载 作者:行者123 更新时间:2023-12-03 10:20:42 26 4
gpt4 key购买 nike

假设我有以下 sql 表

    objid  firstname lastname active
1 test test 0
2 test test 1
3 test1 test1 1
4 test2 test2 0
5 test2 test2 0
6 test3 test3 1

现在,我感兴趣的结果如下:
     objid  firstname lastname active
1 test test 0
2 test test 1
4 test2 test2 0
5 test2 test2 0

我怎样才能做到这一点?
我尝试了以下查询,
select firstname,lastname from table
group by firstname,lastname
having count(*) > 1

但是这个查询给出了类似的结果
    firstname  lastname
test test
test2 test2

最佳答案

您已找到重复的记录,但您有兴趣获取附加到它们的所有信息。您需要join您复制到主表以获取该信息。

select *
from my_table a
join ( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 ) b
on a.firstname = b.firstname
and a.lastname = b.lastname

这与 inner join 相同并且意味着对于您的子查询中的每条记录,找到重复记录,您会从主表中找到具有相同 firstseen 和 lastseen 组合的所有内容。

您也可以使用 in, though you should test the difference 来执行此操作:
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )

进一步阅读:
  • A visual representation of joins来自编码恐怖
  • Join explanation来自维基百科
  • 关于sql - 显示所有重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324107/

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