对于令人困惑的标题,我深表歉意,我无法弄清楚这个问题的正确措辞。相反,我只会给你背景信息和目标:
这是在一个人可能有也可能没有多行数据的表中,这些行可能包含相同的值activity_id
,也可能没有。每行都有一个自动递增的 ID。人们的名字没有附加唯一标识符,因此我们只能使用 first_name/last_name 来识别一个人。
我需要能够在此表中找到具有多行的人,但只有具有包含多个不同行的人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
属于该人的 s 之一,并且只要为该人返回一条记录。
谁能弄清楚如何编写这样的查询?我不在乎你使用什么版本的 SQL,如果它有什么不同,我可能可以将它翻译成 Oracle。