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
Vous devez vous connecter pour publier un commentaire.
Essayer cette requête:
OriginalL'auteur krokodilko
Pour vérifier si quelque chose n'existe pas, utilisez
NOT EXISTS(...)
:OriginalL'auteur wildplasser
Création D'Un Exemple De Tableau:
Insérer Des Valeurs:
Requête SQL:
De sortie:
OriginalL'auteur A. Greensmith