gpt4 book ai didi

mysql - 查找重复项的查询

转载 作者:可可西里 更新时间:2023-11-01 07:54:11 26 4
gpt4 key购买 nike

我有一个具有以下架构的表:

CUSTOMERS (id INT, name VARCHAR(10), height VARCHAR(10), weight INT)

id 是主键。我想找出姓名、高度和体重完全相同的人所在的行。换句话说,我想找出关于 nameheightweight 的重复项。

示例表:

1, sam, 160, 100
2, ron, 167, 88
3, john, 150, 90
4, sam, 160, 100
5, rick, 158, 110
6, john, 150, 90
7, sam, 166, 110

示例输出:

现在因为有相同名字、相同高度和相同体重的人:

山姆 (id=1), 山姆 (id=4)

约翰 (id=3), 约翰 (id=6)

我想获取这些 ID。如果我每次匹配只得到一个 id 也可以(即第一个匹配中的 id=1 和第二个匹配中的 id=3)。


我正在尝试这个查询,但不确定它是否正确。

SELECT id
FROM customers
GROUP BY name, height, weight

最佳答案

试试这个(对 sql server 有效):

SELECT 
t.NAME,
'Ids = '+
(
SELECT cast(Id as varchar)+','
FROM Customers c
WHERE c.NAME = t.NAME AND c.Weight = t.Weight AND c.Height = t.Height
FOR XML PATH('')
)
FROM
(
SELECT Name, height, weight
FROM Customers
GROUP BY Name, height, weight
HAVING COUNT(*) > 1
) t

如您所问 - 每场比赛只有一个 Id

SELECT 
t.NAME,
c.Id
FROM
(
SELECT Name, height, weight
FROM Customers
GROUP BY Name, height, weight
HAVING COUNT(*) > 1
) t
JOIN Customers c ON t.NAME AND c.Weight = t.Weight AND c.Height = t.Height

关于mysql - 查找重复项的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8816936/

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