Comment utiliser T-SQL Group By

Je sais que j'ai besoin d'avoir (bien que je ne sache pas pourquoi) une clause GROUP BY à la fin d'une requête SQL qui utilise des fonctions d'agrégation comme count, sum, avg, etc :

SELECT count(userID), userName
FROM users
GROUP BY userName

Dans quels autres cas GROUP BY serait-il utile, et quelles sont les ramifications en termes de performances ?

请先 登录 后评论

3 réponses

GateKiller

Compter le nombre d'utilisations des balises peut être un exemple Google :

SELECT TagName, Count(*)
AS TimesUsed
FROM Tags
GROUP BY TagName ORDER TimesUsed

Si vous voulez simplement une valeur distincte de balises, je préférerais utiliser l'instruction DISTINCT.

SELECT DISTINCT TagName
FROM Tags
ORDER BY TagName ASC
请先 登录 后评论
Dillie-O

GROUP BY est également utile lorsque vous souhaitez générer un rapport qui calcule la moyenne ou la somme d'un ensemble de données. Vous pouvez GROUPER par l'ID de service et la SOMME tous les revenus des ventes ou AVG le nombre de ventes pour chaque mois.

请先 登录 后评论
Stu

Regrouper par force l'ensemble complet à être rempli avant que les enregistrements ne soient renvoyés (puisqu'il s'agit d'un tri implicite).

Pour cette raison (et bien d'autres), n'utilisez jamais Grouper par dans une sous-requête.

请先 登录 后评论