J'ai une table des gens de noeud, qui ressemble à peu près comme ceci:Grouper par colonne groupée?
lid nid uid type
1 23 3 like
2 23 1 like
3 49 3 dislike
4 11 6 like
lid = ID unique pour ce tableau, JNV = "noeud" (contenu) ID, uid = ID utilisateur et le type est explicite .
Avec cette requête:
SELECT nid, COUNT(lid) AS score, type
FROM node_likes
INNER JOIN users ON node_likes.uid = users.uid
GROUP BY nid, type
je peux obtenir chaque nœud avec son aversion et comme scores. La jointure interne est non pertinente; certains (dés) "J'aime" proviennent d'utilisateurs qui n'existent plus, et la jointure consiste à les éliminer.
Le résultat ressemble à ceci:
nid score type
307 4 like
307 1 dislike
404 24 like
Comment puis-je puis sous-groupe cette requête par type
, et retourner l'ID de nœud plus haut score pour chaque « comme » le type (comme/aversion)?
Ie.
nid score type
404 24 like
307 1 dislike
ORDER BY partition vous donnera DESC les meilleures années JNV. Je ne suis pas sûr de ce que vous entendez par sous-groupe ... – Vatev
ORDER BY score DESC retournera les scores les plus élevés, quel que soit le type. Je veux qu'il renvoie les scores les plus élevés de chaque type. – felamaslen
confondre, ne devrait pas le meilleur score pour les deux aiment/n'aiment pas va à nid = 404? – ajreal