按ID分组,仅当另一列具有相同值时

时间:2020-05-12 19:48:18

标签: sql sql-server tsql

我要GROUP BY CAT_ID,但仅显示结果,而GROUP_ID仅=1。如果该值和该唯一CAT_ID的其他值相同,则我不想包含它。

GROUP_ID  CAT_ID
1         1 
1         1
1         1
2         1
3         1
3         1
1         2
1         2
1         3
2         3

所以在这种情况下,结果将是:

CAT_ID
2

由于CAT_ID 2是GROUP_ID均为1的唯一分组。

1 个答案:

答案 0 :(得分:1)

使用group byhaving

select cat_id
from t
group by cat_id
having max(group_id) = 1;

以上内容回答了您的问题,因为您正在寻找最小的group_id。一个更通用的解决方案是:

having min(group_id) = max(group_id) and max(group_id) = 1;
相关问题