Comment : synthétiser ou regrouper les valeurs de toutes les lignes d'une table
À l'aide d'une fonction d'agrégation, vous pouvez créer une synthèse pour toutes les valeurs d'une table. Ainsi, vous pouvez, comme dans l'exemple illustré ci-dessous, créer une requête qui affiche le prix total de tous les livres de la table titles :
SELECT SUM(price)
FROM titles
Vous pouvez créer plusieurs agrégations dans la même requête en utilisant des fonctions d'agrégation avec plusieurs colonnes. Il est par exemple possible de créer une requête qui calcule le total de la colonne price et la moyenne de la colonne discount.
Vous pouvez par ailleurs agréger la même colonne de différentes façons (total, comptage et moyenne) dans la même requête. Ainsi, la requête ci-dessous établit la moyenne et totalise la colonne price de la table titles :
SELECT AVG(price), SUM(price)
FROM titles
Si vous ajoutez une condition de recherche, vous pouvez agréger le sous-ensemble de lignes qui répond à cette condition.
Notes
Vous pouvez aussi compter toutes les lignes de la table ou celles qui répondent à une condition spécifique. Pour plus d'informations, consultez Comment : compter les lignes d'une table.
Lorsque vous créez une seule valeur d'agrégation pour toutes les lignes d'une table, seules les valeurs agrégées s'affichent. Par exemple, si vous totalisez la valeur de la colonne price de la table titles, les titres individuels, les noms des éditeurs, etc. ne sont pas affichés.
Notes
Si vous calculez des sous-totaux, en d'autres termes si vous créez des groupes, vous pouvez afficher des valeurs de colonne pour chaque groupe. Pour plus d'informations, consultez Comment : regrouper des lignes dans les résultats d'une requête.
Notes
Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.
Pour agréger les valeurs de toutes les lignes
Assurez-vous que la table à agréger figure déjà dans le volet Schéma.
Cliquez avec le bouton droit en un point de l'arrière-plan du volet Schéma, puis choisissez Grouper par dans le menu contextuel. Le Concepteur de requêtes et de vues ajoute une colonne Grouper par à la grille dans le volet Critères.
Ajoutez la colonne à agréger dans le volet Critères. Assurez-vous que la colonne est marquée pour la sortie.
Le Concepteur de requêtes et de vues assigne automatiquement un alias de colonne à la colonne que vous agrégez. Il est possible de remplacer cet alias par un autre plus significatif. Pour plus d'informations, consultez Comment : créer des alias de colonnes.
Dans la colonne de la grille Grouper par, sélectionnez la fonction d'agrégation adéquate, par exemple Sum, Avg, Min, Max ou Count. Pour n'agréger que des lignes uniques dans le jeu de résultats, choisissez une fonction d'agrégation avec l'option DISTINCT, telle que Min Distinct. Évitez des options comme Grouper par, Expression ou Where, dans la mesure où ces options ne s'appliquent pas lorsque vous agrégez toutes les lignes.
Notes
Oracle prend en charge des fonctions d'agrégation supplémentaires.
Le Concepteur de requêtes et de vues remplace le nom de colonne dans l'instruction figurant dans le volet SQL par le nom de la fonction d'agrégation que vous spécifiez. Par exemple, l'instruction SQL peut se présenter de la manière suivante :
SELECT SUM(price) FROM titles
Si vous souhaitez créer plusieurs agrégations dans la requête, répétez les étapes 3 et 4.
Lorsque vous ajoutez une autre colonne à la liste de résultats de la requête ou à la liste Order by, le Concepteur de requêtes et de vues ajoute automatiquement le terme Grouper par dans la colonne Grouper par de la grille. Sélectionnez la fonction d'agrégation appropriée.
Ajoutez des conditions de recherche, le cas échéant, afin de spécifier les sous-ensembles de lignes que vous voulez synthétiser.
Quand vous exécutez la requête, le volet Résultats affiche les agrégations que vous avez définies.
Notes
Le Concepteur de requêtes et de vues conserve les fonctions d'agrégation dans l'instruction SQL du volet SQL jusqu'à ce que vous désactiviez explicitement le mode Grouper par. Par conséquent, si vous modifiez votre requête en changeant son type, les tables ou autres objets table présents dans le volet Schéma, la requête obtenue peut comporter des fonctions d'agrégation non valides.