Comment puis-je utiliser les T-SQL Group By
Je sais que j'ai besoin d'avoir (bien que je ne sais pas pourquoi) un GROUP BY
clause sur la fin d'une requête SQL qui utilise un ensemble de fonctions comme count
, sum
, avg
, etc:
SELECT count(userID), userName
FROM users
GROUP BY userName
Quand d'autre se serait GROUP BY
être utile, et quelles sont les performances des ramifications?
- Notez que le GROUPE PAR " n'est pas le jeu de résultats. Si vous avez besoin d'un ordre particulier, puis ajouter la COMMANDE PAR trop
- Une meilleure façon de le mettre, c'est que le standard SQL ne garantit pas la commande lors de l'utilisation de celui-ci... Mais comment voulez-vous mettre en œuvre le regroupement sans que la commande? Toutes les implémentations j'ai vu l'utilisation de la commande de quelque sorte, et presque toujours retourner les résultats dans l'ordre comme un effet secondaire.
Vous devez vous connecter pour publier un commentaire.
Pour récupérer le nombre de widgets à partir de chaque widget catégorie qui a plus de 5 widgets, vous pourriez faire ceci:
La "avoir des" clause est quelque chose que les gens oublient souvent, plutôt que d'opter pour récupérer leurs données au client et à itérer il.
GROUPE PAR est similaire à DISTINCTES en ce qu'il regroupe plusieurs dossiers dans un.
Cet exemple, emprunté à http://www.devguru.com/technologies/t-sql/7080.asp, les listes de produits distincts dans la table Produits.
L'avantage de GROUPE de plus de DISTINCT, est qu'il peut vous donner un contrôle précis lorsqu'il est utilisé avec une clause HAVING.
Groupe Par les forces de l'ensemble de la série à être remplis avant que les enregistrements sont retournés (puisque c'est un implicite de tri).
Pour cette raison (et bien d'autres), ne jamais utiliser un Group By dans une sous-requête.
Compter le nombre de fois que les balises sont utilisées pourrait être un exemple google:
Si vous souhaitez simplement une valeur distincte de tags, je préfère utiliser le
DISTINCT
déclaration.GROUPE EN aide lorsque vous souhaitez générer un rapport à la moyenne ou la somme d'une série de données. Vous pouvez les regrouper Par le Ministère de l'ID et la SOMME de tous les revenus des ventes ou AVG le nombre de ventes de chaque mois.