2014-06-27 2 views
0

J'interroge une table en regardant trois champs; unit_id, group_id et service.Sélection SQL basée sur deux variables, à l'exclusion des autres

Chaque unité_id est unique et possède un seul identifiant de groupe et un service associé.

Je veux retourner group_id et service où toutes les unités avec ce group_id ont le même service. Par exemple, si j'ai:

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 

Je veux qu'il revienne Group_A et group_C, parce que tous les services dans ces group_ids sont les mêmes, alors que Group_B a à la fois orange et de pomme.

Comment écrire une requête SQL qui accomplit cela?

Merci beaucoup.

Répondre

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 Gotcha, cela fait beaucoup de sens, merci! – John

Questions connexes