gpt4 book ai didi

sql - 返回具有重复数据的行的 id

转载 作者:行者123 更新时间:2023-12-05 03:10:28 25 4
gpt4 key购买 nike

我需要获取重复的行的行 ID

Select Name from table1 group by Name having count(1) > 1

表1

ID | Name    | ClientID
----------------------------
01 | John | 01
02 | Sam | 01
03 | Sue | 01
04 | John | 02
05 | John | 01

唯一的问题是它只会返回名称而不是列的 ID,因为我在同一个表上有多个客户端,我不想将其他客户端的名称计为重复项。

那么有没有办法在表中查找重复数据并返回行的 ID,以便我可以在另一个查询中使用这些 ID?

我修改过的答案

感谢大家给我的答案,这是对我标记为答案的那个的修改。

select t1.*
from (select count(*) over (partition by entityname) as cnt ,t1.*
from table1 t1 where ClientID = 1
) t1
where cnt > 1 and ClientID = 1 order by cnt;

最佳答案

使用窗口函数:

select t1.*
from (select t1.*, count(*) over (partition by name) as cnt
from table1 t1
) t1
where cnt > 1;

count(*) over (partition by name) 计算每个名称的行数。但是,它通过在每一行上附加计数来实现这一点,而不是通过减少行数来实现。这是您选择行所需的信息。

关于sql - 返回具有重复数据的行的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39693520/

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