CommencezCommencez gratuitement

L'ABC de SQL (2)

Une autre tâche courante dans une base de données est l'agrégation. Autrement dit, réduire vos données en les divisant en blocs, puis en résumant chaque bloc.

En SQL, on fait cela avec la commande GROUP BY. Cette commande scinde vos données en groupes et applique à chaque groupe une fonction définie dans votre instruction SELECT.

Par exemple, si vous vouliez compter le nombre de vols à partir de chacune des deux origines, vous pourriez utiliser la requête suivante :

SELECT COUNT(*) FROM flights
GROUP BY origin;

GROUP BY origin indique à SQL que vous voulez que le résultat contienne une ligne pour chaque valeur unique de la colonne origin. L'instruction SELECT choisit les valeurs avec lesquelles remplir chacune des colonnes. Ici, nous voulons COUNT() chaque ligne dans chacun des groupes.

Il est possible d'appliquer GROUP BY à plus d'une colonne. Dans ce cas, la table résultante contient une ligne pour chaque combinaison des valeurs uniques de chaque colonne. La requête suivante compte le nombre de vols de SEA et PDX vers chaque aéroport de destination :

SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;

La sortie contiendra une ligne pour chaque combinaison des valeurs de origin et dest (c.-à-d. une ligne listant chaque origine et destination desservies par un vol). Il y aura aussi une colonne avec le COUNT() de toutes les lignes dans chaque groupe.

Pour un examen plus approfondi de SQL, consultez cette ressource.

Quelle information cette requête permettrait-elle d'obtenir ? Rappelez-vous que la table flights contient des renseignements sur des vols partis de PDX et SEA en 2014 et 2015. Notez que la fonction AVG() calcule la valeur moyenne d'une colonne !

SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;

Cette activité fait partie du cours

Fondements de PySpark

Voir le cours

Exercice interactif pratique

Passez de la théorie à l’action grâce à l’un de nos exercices interactifs

Commencer l’exercice