TD3 : fonctions d'agrégation, GROUP BY

ORDER BY : trier

La requête suivante permet de trier les lignes d'une table selon l'attribut attribut.

SELECT * FROM Table ORDER BY attribut;

Pour trier en ordre décroissant on rajoute le mot clef DESC

SELECT * FROM Table ORDER BY attribut DESC;

Questions

Dans la base de données cinema.odb, quelles requêtes permettent de trouver les informations suivantes :

COUNT

La requête suivante compte le nombre de lignes de la table Table :

SELECT COUNT(*) FROM Table

Si l'on veut compter le nombre de lignes de cette table dont l'attribut attribut est différent de NULL,on utilise la requête suivante :

SELECT COUNT(attribut) FROM table

Si l'on veut compter le nombre de lignes de cette table dont l'attribut attribut est différent de NULL et que l'on ne veut pas compter les doublons, on utilise la requête suivante :

SELECT COUNT(DISTINCT attribut) FROM table

On peut utiliser COUNT conjointement avec tous les autres mots clefs vus précédemment. Par exemple avec WHERE on peut compter le nombre de lignes dont un attribut est égal à une certaine valeur :

SELECT COUNT(*) FROM table WHERE attribut = valeur

Questions

MAX et MIN

La requête suivante permet de calculer le maximum d'un attribut dans une table :

SELECT MAX(attribut) FROM table

On peut utiliser ce mot clef conjointement avec un WHERE pour afficher des informations qui permettent de savoir quelle ligne réalise le maximum :

SELECT * FROM Table WHERE attribut = (SELECT MAX(attribut) FROM Table)

La requête MIN est analogue.

Questions

AVG : Average

La requête suivante permet de calculer la moyenne d'un attribut dans une table :

SELECT AVG(attribut) FROM Table

Questions

SUM : Somme

La requête suivante permet de calculer la somme d'un attribut dans une table :

SELECT SUM(attribut) FROM Table

Questions

GROUP BY

Les précédentes fonctions : COUNT, MAX, MIN, AVG et SUM sont appelées fonctions d'agrégation. Pour ces fonctions là, on peut demander à calculer ces quantités sur attribut_numerique pour chaque groupe de lignes ayant en commun une certaine valeur pour un autre attribut attribut_groupe.

SELECT FONCTION(attribut_numerique), attribut_groupe FROM Table GROUP BY attribut_groupe

Questions

Cas d'étude : schéma Produit, Achat, Client

Dans la base de données pac.odb, quelles requêtes permettent de trouver les informations suivantes :