certains utilisateurs ont plusieurs enregistrements distincts dans mysql
Pour une table qui contient les enregistrements de l'utilisateur les pages web de visite de comportement, comment puis-je sélectionner les utilisateurs qui visitent le plus d'une des pages web.
La structure de ce tableau est:
userId webpageId visitTime
0 123 ...
0 124 ...
1 123 ...
... ... ...
Je peux compter à l'aide de:
SELECT userId, COUNT(DISTINCT webpageId) AS count FROM visits GROUP BY userId;
Il me donne le résultat comme:
userId count
0 2
1 1
2 6
... ...
Comment puis-je exécuter une requête qui me donne le résultat final comme:
userId
0
2
...
chaque utilisateur qui visite plus d'un DISTINCT des pages web
source d'informationauteur zoujyjs
Vous devez vous connecter pour publier un commentaire.
seulement ajouter de la clause having
mais si vous seulement ce qu'est
ID
la raison pour laquelle vous êtes le filtrage sur
HAVING
clause et non pas surWHERE
est parce que,WHERE
clause ne peut pas soutenir les colonnes où agrégées.Essayez ceci:
Plus: AVOIR
Tout
HAVING
est une bonne approche dans ce cas, n'oubliez pas que les requêtes peuvent être imbriquées:La requête réelle plans peuvent varier, surtout si
HAVING
est un cas d'optimisation, mais il n'y a aucune raison pourquoi les plans doivent être différents. (Comparer les plans sur les SGBDR/version si c'est une question ou une préoccupation.)