Partager via


Regrouper des lignes dans les résultats de requête (Visual Database Tools)

s’applique à : SQL Server

Si vous souhaitez créer des sous-totaux ou afficher d’autres informations récapitulatives pour les sous-ensembles d’une table, vous créez des groupes à l’aide d’une requête d’agrégation. Chaque groupe récapitule les données de toutes les lignes de la table qui ont la même valeur.

Par exemple, vous souhaiterez peut-être voir le prix moyen d’un livre dans la table titles, mais décomposez les résultats par éditeur. Pour ce faire, vous regroupez la requête par éditeur (par exemple, pub_id). La sortie de requête résultante peut ressembler à ceci :

résultats de la requête : prix moyen regroupé par serveur de publication

Lorsque vous regroupez des données, vous pouvez afficher uniquement des données récapitulatives ou groupées, telles que :

  • Valeurs des colonnes groupées (celles qui apparaissent dans la clause GROUP BY). Dans l’exemple ci-dessus, pub_id est la colonne groupée.

  • Valeurs produites par des fonctions d’agrégation telles que SUM( ) et AVG( ). Dans l’exemple ci-dessus, la deuxième colonne est produite à l’aide de la fonction AVG( ) avec la colonne price.

Vous ne pouvez pas afficher de valeurs à partir de lignes individuelles. Par exemple, si vous regroupez uniquement par éditeur, vous ne pouvez pas également afficher des titres individuels dans la requête. Par conséquent, si vous ajoutez des colonnes à la sortie de la requête, le concepteur de requêtes et de vues les ajoute automatiquement à la clause GROUP BY de l’instruction dans le volet SQL. Si vous souhaitez qu’une colonne soit agrégée à la place, vous pouvez spécifier une fonction d’agrégation pour cette colonne.

Si vous regroupez plusieurs colonnes, chaque groupe de la requête affiche les valeurs d’agrégation pour toutes les colonnes de regroupement.

Par exemple, la requête suivante sur les groupes de tables titles par éditeur (pub_id) et également par type de livre (type). Les résultats de la requête sont classés par éditeur et affichent des informations récapitulatives pour chaque type de livre produit par l’éditeur :

SELECT pub_id, type, SUM(price) Total_price  
FROM titles  
GROUP BY pub_id, type  

La sortie résultante peut ressembler à ceci :

Résultats de la requête : prix regroupé par éditeur et type

Pour regrouper des lignes

  1. Démarrez la requête en ajoutant les tables que vous souhaitez synthétiser dans le volet Diagramme.

  2. Cliquez avec le bouton droit sur l’arrière-plan du volet Diagramme, puis choisissez Ajouter un groupe par dans le menu contextuel. Le Concepteur de requêtes et de vues ajoute une colonne Group By à la grille dans le volet Critères.

  3. Ajoutez la colonne ou les colonnes que vous souhaitez regrouper dans le volet Critères. Si vous souhaitez que la colonne apparaisse dans la sortie de la requête, assurez-vous que la colonne Sortie est sélectionnée pour la sortie.

    Le Concepteur de requêtes et de vues ajoute une clause GROUP BY à l’instruction dans le volet SQL. Par exemple, l’instruction SQL peut ressembler à ceci :

    SELECT pub_id  
    FROM titles  
    GROUP BY pub_id  
    
  4. Ajoutez la colonne ou les colonnes que vous souhaitez agréger au volet Critères. Assurez-vous que la colonne est marquée pour la sortie.

  5. Dans la cellule de grille pour la colonne qui va être agrégée (Group By), sélectionnez la fonction d’agrégation appropriée.

    Le Concepteur de requêtes et de vues affecte automatiquement un alias de colonne à la colonne que vous résumez. Vous pouvez remplacer cet alias généré automatiquement par un alias plus significatif. Pour plus d’informations, consultez Créer des alias de colonne.

    Ajout d’un alias de colonne au jeu de résultats de requête

    L’instruction correspondante dans le volet SQL peut ressembler à ceci :

    SELECT   pub_id, SUM(price) AS Totalprice  
    FROM     titles  
    GROUP BY pub_id  
    

Voir aussi

trier et regrouper les résultats des requêtes