2014-06-27 40 views
0

我在查詢一個表,查看三個字段; unit_id,group_id和服務。基於兩個變量的SQL選擇,排除其他

每個unit_id都是唯一的,並且具有與其關聯的單個group_id和服務。

我想返回group_id和服務,其中具有該group_id的所有單位具有相同的服務。舉例來說,如果我有:

unit_id group_id service 
1   group_A  apple 
2   group_B  orange 
3   group_B  apple 
4   group_A  apple 
5   group_C  banana 

我想它返回group_A和group_C,因爲在那些group_ids所有的服務都是一樣的,而group_B既有的橙色和蘋果。

如何編寫一個SQL查詢來完成該操作?

非常感謝。

回答

1
select * from your_table 
where group_id in 
(
    select group_id 
    from your_table 
    group by group_id 
    having count(distinct service) = 1 
) 
+0

@juergen_d嘿,這很有道理,謝謝! – John