Contenu du cours
SQL Intermédiaire
SQL Intermédiaire
Clause GROUP BY
Bienvenue dans le cours SQL Intermédiaire !
Dans la première section, nous allons explorer comment nous pouvons grouper et agréger des données dans nos tables.
Comprenons ce que signifie « le regroupement de données » en utilisant un exemple simple d'une table d'employés :
Regroupement des données
Nous avons pour tâche de déterminer le nombre d'employés dans chaque département. Pour ce faire, nous allons regrouper les données par la colonne department
et utiliser l'agrégation avec la fonction COUNT(*)
.
Voici à quoi ressemblera l'implémentation :
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Ainsi, comme vous pouvez le voir, la syntaxe pour regrouper les données ressemble à ceci:
Note
AGG_FUNC
signifie des fonctions d'agrégation telles queMAX
,MIN
,COUNT
, etc.
Cette syntaxe existe pour trouver certaines valeurs en utilisant des fonctions d'agrégation dans des colonnes spécifiques.
Prenons un autre exemple : nous avons été chargés de trouver le département avec le salaire moyen le plus élevé.
Pour extraire de telles données, nous devons regrouper les données par la colonne department
puis utiliser la fonction AVG()
pour calculer le salaire moyen:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Dans cette partie de la section, nous allons travailler avec la base de données du système de métro de Montréal, qui contient la table metro_travel_time
.
Cette table contiendra des informations sur la ligne de station(line_name
), son nom(station_name
), et la durée nécessaire pour qu'un train passe d'une station à l'autre(time_to_next_station
).
Voici à quoi ressemble cette table et l’aperçu des données :
Comme vous pouvez le constater, il ne s’agit pas d’une table complexe. Réfléchissons à l’endroit où nous pourrions utiliser le regroupement ici.
L’option la plus évidente est le regroupement par les couleurs des lignes de métro. Cela signifie que nous pouvons agréger les données, en les regroupant par la couleur de la ligne de métro.
Alias
Dans les exercices, vous utiliserez souvent un concept appelé un alias. Un alias est essentiellement un « surnom » pour une colonne que vous récupérez avec une instruction SELECT
. Il est spécifié en utilisant la syntaxe suivante:
Un alias n'affecte que la manière dont la colonne apparaît dans le résultat.
Par exemple, au lieu de MAX(time)
, la colonne pourrait être appelée max_time
si vous lui attribuez cet alias. Cela rend la sortie plus lisible et claire.
Swipe to start coding
Votre tâche consiste à trouver le temps le plus long avant la prochaine station sur chaque ligne. Cela nous permettra de déterminer le temps de trajet le plus long entre les stations pour chaque ligne de métro. Pour ce faire, utilisez la fonction MAX()
et renommez-la en max_time
, en regroupant les données par la colonne line_name
.
Instructions brèves
- Récupérez la colonne
line_name
et la valeur maximale de la colonnetime_to_next_station
. - Ajoutez l'alias
max_time
pour la valeur maximale. - Regroupez les données par la colonne
line_name
.
Une fois cette tâche accomplie, cliquez sur le situé en dessous du code pour vérifier votre solution.
Solution
Merci pour vos commentaires !
Clause GROUP BY
Bienvenue dans le cours SQL Intermédiaire !
Dans la première section, nous allons explorer comment nous pouvons grouper et agréger des données dans nos tables.
Comprenons ce que signifie « le regroupement de données » en utilisant un exemple simple d'une table d'employés :
Regroupement des données
Nous avons pour tâche de déterminer le nombre d'employés dans chaque département. Pour ce faire, nous allons regrouper les données par la colonne department
et utiliser l'agrégation avec la fonction COUNT(*)
.
Voici à quoi ressemblera l'implémentation :
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Ainsi, comme vous pouvez le voir, la syntaxe pour regrouper les données ressemble à ceci:
Note
AGG_FUNC
signifie des fonctions d'agrégation telles queMAX
,MIN
,COUNT
, etc.
Cette syntaxe existe pour trouver certaines valeurs en utilisant des fonctions d'agrégation dans des colonnes spécifiques.
Prenons un autre exemple : nous avons été chargés de trouver le département avec le salaire moyen le plus élevé.
Pour extraire de telles données, nous devons regrouper les données par la colonne department
puis utiliser la fonction AVG()
pour calculer le salaire moyen:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Dans cette partie de la section, nous allons travailler avec la base de données du système de métro de Montréal, qui contient la table metro_travel_time
.
Cette table contiendra des informations sur la ligne de station(line_name
), son nom(station_name
), et la durée nécessaire pour qu'un train passe d'une station à l'autre(time_to_next_station
).
Voici à quoi ressemble cette table et l’aperçu des données :
Comme vous pouvez le constater, il ne s’agit pas d’une table complexe. Réfléchissons à l’endroit où nous pourrions utiliser le regroupement ici.
L’option la plus évidente est le regroupement par les couleurs des lignes de métro. Cela signifie que nous pouvons agréger les données, en les regroupant par la couleur de la ligne de métro.
Alias
Dans les exercices, vous utiliserez souvent un concept appelé un alias. Un alias est essentiellement un « surnom » pour une colonne que vous récupérez avec une instruction SELECT
. Il est spécifié en utilisant la syntaxe suivante:
Un alias n'affecte que la manière dont la colonne apparaît dans le résultat.
Par exemple, au lieu de MAX(time)
, la colonne pourrait être appelée max_time
si vous lui attribuez cet alias. Cela rend la sortie plus lisible et claire.
Swipe to start coding
Votre tâche consiste à trouver le temps le plus long avant la prochaine station sur chaque ligne. Cela nous permettra de déterminer le temps de trajet le plus long entre les stations pour chaque ligne de métro. Pour ce faire, utilisez la fonction MAX()
et renommez-la en max_time
, en regroupant les données par la colonne line_name
.
Instructions brèves
- Récupérez la colonne
line_name
et la valeur maximale de la colonnetime_to_next_station
. - Ajoutez l'alias
max_time
pour la valeur maximale. - Regroupez les données par la colonne
line_name
.
Une fois cette tâche accomplie, cliquez sur le situé en dessous du code pour vérifier votre solution.
Solution
Merci pour vos commentaires !