Synthaxe pour clause "COUNT" en SQL

darwin42 Messages postés 262 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 21 juillet 2008 - 13 févr. 2003 à 17:58
darwin42 Messages postés 262 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 21 juillet 2008 - 14 févr. 2003 à 09:43
salut,

qqun aurait-il l'amabilité de me donner un exemple de requête SQL utilisant la clause "COUNT" et pourquoi pas la clause "SUM".

Merci d'avance...

2 réponses

cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
14 févr. 2003 à 09:04
Ça sort tout droit de MSN :

Création de résumés de données
Pour faire la synthèse de toutes les données d'une table, définissez une requête Agrégation qui utilise une fonction telle que SUM( ) ou AVG( ). Lorsque vous exécutez la requête, le jeu de résultats contient une ligne unique présentant les informations récapitulatives. C'est le cas, par exemple, lorsque vous calculez le prix total de tous les ouvrages de la table titres en générant une requête qui effectue la somme des valeurs de la colonne prix. L'illustration ci-dessous affiche les résultats de la requête :

L'instruction SQL correspondante sera de la forme suivante :

SELECT SUM(prix) prix_total
FROM titres

Les fonctions d'agrégation suivantes sont disponibles :

Fonction d'agrégation Description
AVG(expr) Moyenne des valeurs dans une colonne. La colonne doit contenir des données numériques.
COUNT(expr), COUNT(*) Nombre des valeurs dans une colonne (si vous spécifiez un nom de colonne dans expr) ou de toutes les lignes d'une table ou d'un groupe (si vous spécifiez *). COUNT(expr) ne prend pas en compte les valeurs de type Null, à l'inverse de COUNT(*).
MAX(expr) Valeur la plus haute dans une colonne (ou dernière valeur, selon l'ordre alphabétique, pour les données non numériques). Cette fonction ignore les valeurs de type Null.
MIN(expr) Valeur la plus basse dans une colonne (ou première valeur, selon l'ordre alphabétique, pour les données non numériques). Cette fonction ignore les valeurs de type Null.
SUM(expr) Somme des valeurs d'une colonne. La colonne doit contenir des données numériques.

Remarque Oracle prend en charge les fonctions d'agrégation supplémentaires. Pour plus d'informations, reportez-vous à la rubrique Utilisation du Concepteur de requêtes dans des bases de données Oracle.

Lorsque vous utilisez une fonction d'agrégation, les résumés incluent, par défaut, toutes les lignes spécifiées. Dans certains cas, le jeu de résultats contient plusieurs occurrences des mêmes lignes. Vous avez la possibilité de laisser de côté les lignes qui apparaissent plusieurs fois en utilisant l'option DISTINCT d'une fonction d'agrégation.

Vous pouvez également combiner des fonctions d'agrégation avec d'autres expressions pour calculer d'autres valeurs de résumés. Pour plus d'informations, reportez-vous à la rubrique Synthèse des valeurs à l'aide d'expressions personnalisées.

Regroupement de lignes
Pour extraire des valeurs de résumés pour des groupes de lignes, définissez une requête contenant une clause GROUP BY. Toutes les lignes contenant la même valeur de groupe apparaissent sous une forme synthétique sur une seule ligne dans le jeu de résultats. Les résultats contiennent autant de lignes qu'il y a de valeurs uniques dans la colonne traitée. En revanche , si vous regroupez plusieurs colonnes, le jeu de résultats contient les valeurs uniques pour chaque groupe de colonnes que vous avez spécifié.

Il est possible, par exemple, d'interroger la table titres afin de rechercher le prix moyen d'un livre chez chaque éditeur. Pour cela, créez un regroupement pour la colonne id_éditeur de sorte que toutes les lignes d'un éditeur donné soient prises en compte. L'illustration ci-dessous affiche les résultats de la requête :

L'instruction SQL correspondante sera de la forme suivante :

SELECT id_éditeur, AVG(prix) AveragePrice
FROM titres
GROUP BY id_éditeur
0
darwin42 Messages postés 262 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 21 juillet 2008
14 févr. 2003 à 09:43
Je te remercie, c'est sympa !
0
Rejoignez-nous