我有一个如下数据集:
KEY USER STEP
---------------------
123 Geoff 1
123 Geoff 2
123 John 3
456 Jane 1
456 Jane 2
456 Jane 3
456 Jane 4
我需要做的是选择所有步骤中USER相同的KEY(数据集中可以有1到5个步骤)。所以在上面的例子中我需要查询返回KEY 456。 任何帮助非常感谢!
答案 0 :(得分:0)
您可以使用GROUP BY
和HAVING
:
select key
from table t
group by key
having min(user) = max(user);
注意:key
和user
都是关键字。您可能必须使用反引号(或者希望您的实际列名称不同)。
答案 1 :(得分:0)
您也可以这样做,而不是与min(user)
和max(user)
进行比较:
SELECT tablename.key
FROM tablename
GROUP BY tablename.key HAVING count(DISTINCT d.user) = 1;
count(DISTINCT d.user)
应该更具描述性。