Comment vérifier si une valeur existe dans chaque groupe (après le groupe)

Supposons que j'ai un abonnements table :

uid  | subscription_type 
------------------------  
Alex | type1
Alex | type2
Alex | type3
Alex | type4
Ben  | type2
Ben  | type3
Ben  | type4

Et souhaitez sélectionner seulement les utilisateurs qui ont plus de 2 abonnements mais jamais souscrit de type 1

Le résultat attendu est la sélection de "Ben".

Facile je peut trouvé les utilisateurs qui ont plus de 2 s'abonne à l'aide de:

SELECT uid
FROM subscribes
GROUP BY uid
HAVING COUNT(*) > 2

Mais comment vérifier si, dans un groupe a de la valeur n'existe jamais?

Merci pour l'aide!

But how to check if in a group some value never exists? peut-être vous avez besoin d'ajouter une clause where avec un NOT EXITS(..) !
J'ai essayé ceci: SELECT uid DE GROUPE souscrit PAR cid,offre de COUNT(*)> 2 ET not EXISTS ( SELECT uid, subscription_type DE s'abonne OÙ subscription_type = "renouveler") Mais cela ne fonctionne pas, les retours à vide de la table
Vous devez vous couple l'uid dans la sous-requête à qui de la requête principale. Ensuite, il doit travailler. Aussi: il devrait être dans un WHERE clause, pas dans une clause having.

OriginalL'auteur Spivakos | 2015-11-18