SQL - 为特定键选择多行中相同的数据

时间:2015-08-30 23:29:13

标签: mysql

我有一个如下数据集:

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。 任何帮助非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以使用GROUP BYHAVING

执行此操作
select key
from table t
group by key
having min(user) = max(user);

注意:keyuser都是关键字。您可能必须使用反引号(或者希望您的实际列名称不同)。

答案 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)应该更具描述性。