Clause Group By
Bienvenue dans le cours SQL Intermédiaire !
Dans la première section, nous allons explorer comment regrouper et agréger des données au sein de nos tables.
Comprenons ce que signifie "regrouper des données" à l'aide d'un exemple simple d'une table employees :
Regroupement des données
Nous avons pour objectif de déterminer le nombre d'employés dans chaque département. Pour cela, nous allons regrouper les données par la colonne department
et utiliser une agrégation avec la fonction COUNT(*)
.
Voici à quoi ressemblera l'implémentation :
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Ainsi, comme vous pouvez le constater, la syntaxe pour regrouper des données est la suivante :
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Remarque
AGG_FUNC
désigne les fonctions d'agrégation telles queMAX
,MIN
,COUNT
, etc.
Cette syntaxe permet de trouver certaines valeurs à l'aide de fonctions d'agrégation sur des colonnes spécifiques.
Prenons un autre exemple : on nous a demandé de trouver le département avec le salaire moyen le plus élevé.
Pour obtenir ces données, il faut regrouper les données par la colonne department
puis utiliser la fonction AVG()
pour calculer le salaire moyen :
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Dans cette partie de la section, nous travaillerons avec la base de données du 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 le temps nécessaire pour qu'un train parcourt d'une station à la suivante (time_to_next_station
).
Voici à quoi ressemble cette table et un aperçu des données qu'elle contient :
Comme vous pouvez le constater, il ne s'agit pas d'une table complexe. Réfléchissons à la manière dont nous pouvons utiliser le regroupement ici.
L'option la plus évidente est le regroupement par couleur des lignes de métro. Cela signifie que nous pouvons agréger les données en les regroupant par couleur de la ligne de métro.
Alias
Dans les exercices, vous utiliserez souvent un concept appelé alias. Un alias est essentiellement un « surnom » donné à une colonne que vous récupérez avec une instruction SELECT
. Il s'indique avec la syntaxe suivante :
SELECT column AS alias
Un alias n'affecte que la façon dont la colonne apparaît dans la réponse.
Par exemple, au lieu de MAX(time)
, la colonne pourrait être appelée max_time
si vous lui attribuez cet alias. Cela rend le résultat plus lisible et clair.
Swipe to start coding
Votre tâche consiste à trouver le temps le plus long jusqu'à la prochaine station sur chaque ligne. Cela nous permettra de déterminer le temps de trajet le plus long entre deux stations pour chaque ligne de métro. Pour cela, utilisez la fonction MAX()
et attribuez-lui l'alias 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 terminée, cliquez sur le bouton sous le code pour vérifier votre solution.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain more about aggregate functions in SQL?
How does the GROUP BY clause work with multiple columns?
Can you give more examples of using aliases in SQL queries?
Awesome!
Completion rate improved to 4
Clause Group By
Glissez pour afficher le menu
Bienvenue dans le cours SQL Intermédiaire !
Dans la première section, nous allons explorer comment regrouper et agréger des données au sein de nos tables.
Comprenons ce que signifie "regrouper des données" à l'aide d'un exemple simple d'une table employees :
Regroupement des données
Nous avons pour objectif de déterminer le nombre d'employés dans chaque département. Pour cela, nous allons regrouper les données par la colonne department
et utiliser une agrégation avec la fonction COUNT(*)
.
Voici à quoi ressemblera l'implémentation :
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Ainsi, comme vous pouvez le constater, la syntaxe pour regrouper des données est la suivante :
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Remarque
AGG_FUNC
désigne les fonctions d'agrégation telles queMAX
,MIN
,COUNT
, etc.
Cette syntaxe permet de trouver certaines valeurs à l'aide de fonctions d'agrégation sur des colonnes spécifiques.
Prenons un autre exemple : on nous a demandé de trouver le département avec le salaire moyen le plus élevé.
Pour obtenir ces données, il faut regrouper les données par la colonne department
puis utiliser la fonction AVG()
pour calculer le salaire moyen :
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Dans cette partie de la section, nous travaillerons avec la base de données du 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 le temps nécessaire pour qu'un train parcourt d'une station à la suivante (time_to_next_station
).
Voici à quoi ressemble cette table et un aperçu des données qu'elle contient :
Comme vous pouvez le constater, il ne s'agit pas d'une table complexe. Réfléchissons à la manière dont nous pouvons utiliser le regroupement ici.
L'option la plus évidente est le regroupement par couleur des lignes de métro. Cela signifie que nous pouvons agréger les données en les regroupant par couleur de la ligne de métro.
Alias
Dans les exercices, vous utiliserez souvent un concept appelé alias. Un alias est essentiellement un « surnom » donné à une colonne que vous récupérez avec une instruction SELECT
. Il s'indique avec la syntaxe suivante :
SELECT column AS alias
Un alias n'affecte que la façon dont la colonne apparaît dans la réponse.
Par exemple, au lieu de MAX(time)
, la colonne pourrait être appelée max_time
si vous lui attribuez cet alias. Cela rend le résultat plus lisible et clair.
Swipe to start coding
Votre tâche consiste à trouver le temps le plus long jusqu'à la prochaine station sur chaque ligne. Cela nous permettra de déterminer le temps de trajet le plus long entre deux stations pour chaque ligne de métro. Pour cela, utilisez la fonction MAX()
et attribuez-lui l'alias 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 terminée, cliquez sur le bouton sous le code pour vérifier votre solution.
Solution
Merci pour vos commentaires !
Awesome!
Completion rate improved to 4single