Skip to content

Instantly share code, notes, and snippets.

@justinehell
Last active September 20, 2020 19:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save justinehell/81ecea122923a57d5a393fc0d402140e to your computer and use it in GitHub Desktop.
Save justinehell/81ecea122923a57d5a393fc0d402140e to your computer and use it in GitHub Desktop.
06 - SQL avancé
// Retourne le nom des équipes et le nombre de joueurs par équipe,
// le tout classé par nombre de joueurs par équipe, de la plus nombreuse à la moins nombreuse.
SELECT name AS team, COUNT(*) AS nb_players
FROM team
JOIN player ON team.id=player.team_id
GROUP BY team_id
ORDER BY nb_players DESC;
+------------+------------+
| team | nb_players |
+------------+------------+
| Gryffindor | 36 |
| Slytherin | 21 |
| Ravenclaw | 15 |
| Hufflepuff | 12 |
+------------+------------+
4 rows in set (0.00 sec)
// Retourne uniquement les noms des équipes complètes (ayant 14 joueurs ou plus,
// c’est-à- dire 7 joueurs et 7 remplaçants minimum), classés par ordre alphabétique.
SELECT name AS team, COUNT(*) AS nb_players
FROM team
JOIN player ON team.id=player.team_id
GROUP BY team_id
HAVING nb_players >= 14
ORDER BY team;
+------------+------------+
| team | nb_players |
+------------+------------+
| Gryffindor | 36 |
| Ravenclaw | 15 |
| Slytherin | 21 |
+------------+------------+
3 rows in set (0.00 sec)
// L’entraîneur des Gryffondor est superstitieux, son jour préféré est le lundi.
// Retourne la liste des joueurs de son équipe qui ont été enrôlés un lundi (il souhaite les faire jouer en priorité),
// et classe les résultats par date d’enrôlement chronologique.
SELECT firstname, lastname, name AS team, enrollment_date
FROM wizard
JOIN player ON wizard.id=player.wizard_id
JOIN team ON team.id=player.team_id
WHERE team.id=1 HAVING DAYOFWEEK(player.enrollment_date) = 2
ORDER BY enrollment_date ASC;
+-----------+------------+------------+-----------------+
| firstname | lastname | team | enrollment_date |
+-----------+------------+------------+-----------------+
| George | Weasley | Gryffindor | 1991-08-26 |
| Alice | Longbottom | Gryffindor | 1992-02-17 |
| Cadogan | | Gryffindor | 1993-01-04 |
| Godric | Gryffindor | Gryffindor | 1993-08-30 |
| Sirius | Black | Gryffindor | 1994-01-10 |
| Aberforth | Dumbledore | Gryffindor | 1995-04-24 |
| Augusta | Longbottom | Gryffindor | 1999-10-25 |
+-----------+------------+------------+-----------------+
7 rows in set (0.00 sec)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment