gpt4 book ai didi

mysql - 仅选择具有重复(A 列 || B 列)但不同(C 列)值的记录

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

对于这个令人困惑的标题,我深表歉意,我想不出这个问题的正确措辞。相反,我只会给你背景信息和目标:

这是在一个表中,一个人可能有也可能没有多行数据,这些行可能包含相同的 activity_id 值,也可能不包含。每行都有一个自动递增的 ID。人的名字没有唯一标识符,所以我们只能使用名字/姓氏来标识一个人。

我需要能够找到该表中有多行的人,但只能找到多行包含多个不同 activity_id 的人。

这是我们正在查看的数据示例:

unique_id | first_name    |   last_name    |    activity_id
---------------------------------------------------------------
1 | ted | stevens | 544
2 | ted | stevens | 544
3 | ted | stevens | 545
4 | ted | stevens | 546
5 | rachel | jameson | 633
6 | jennifer | tyler | 644
7 | jennifer | tyler | 655
8 | jennifer | tyler | 655
9 | jack | fillion | 544
10 | mallory | taylor | 633
11 | mallory | taylor | 633

从那个小样本中,这里是我想要返回的记录:

unique_id | first_name    |   last_name    |    activity_id
---------------------------------------------------------------
dontcare | ted | stevens | 544
dontcare | jennifer | tyler | 655

请注意,unique_id 的返回值是无关紧要的,只要它是属于那个人的 unique_id 之一,只要只有一条记录是为那个人返回。

谁能想出如何编写这样的查询? 我不在乎你使用的是什么版本的 SQL,如果它有某种不同,我可能可以将它翻译成 Oracle。

最佳答案

我会这样做:

SELECT first_name, last_name, COUNT(DISTINCT activity_id)
FROM <table_name>
GROUP BY first_name, last_name
HAVING COUNT(DISTINCT activity_id) > 0;

关于mysql - 仅选择具有重复(A 列 || B 列)但不同(C 列)值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18751644/

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