SELECT TIMESTAMPDIFF(MINUTE,
(
SELECT MIN(date_naissance)
FROM Animal
WHERE id IN (13, 18, 20, 22)
),
(
SELECT MAX(date_naissance)
FROM Animal
WHERE id IN (13, 18, 20, 22)
)
) AS nb_minutes;
Presque le même exercice qu'au-dessus, à ceci près qu'il fallait utiliser les fonctions d’agrégation.
2. Calculer combien d'animaux sont nés durant un mois pendant lequel les moules sont les plus
consommables (c'est-à-dire les mois finissant en "bre").
Secret (cliquez pour afficher)
Code : SQL
SELECT COUNT(*)
FROM Animal
WHERE MONTHNAME(date_naissance) LIKE '%bre';
Il faut bien sûr avoir préalablement défini que le nom des mois et des jours doit être exprimé en français. Je rappelle la requête
à utiliser : SET lc_time_names = 'fr_FR';
3. Pour les chiens et les chats (espece_id = 1 et espece_id = 2 respectivement), afficher les
différentes dates de naissance des portées d'au moins deux individus (format JJ/MM/AAAA), ainsi
que le nombre d'individus pour chacune de ces portées. Attention, il n'est pas impossible qu'une
portée de chats soit née le même jour qu'une portée de chiens (il n'est pas non plus impossible que
deux portées de chiens naissent le même jour, mais on considère que ce n'est pas le cas).
Secret (cliquez pour afficher)
Code : SQL
SELECT DATE_FORMAT(date_naissance, '%d/%m/%Y'), COUNT(*) as
nb_individus
FROM Animal
WHERE espece_id IN (1, 2)
GROUP BY DATE(date_naissance), espece_id
HAVING nb_individus > 1;
Il faut regrouper sur la date (et uniquement la date, pas l'heure) puis sur l'espèce pour éviter de mélanger chiens et chats. Une
simple clause HAVING permet ensuite de sélectionner les portées de deux individus ou plus.
4. Calculer combien de chiens (espece_id = 1) sont nés en moyenne chaque année entre 2006 et
2010 (sachant qu'on a eu au moins une naissance chaque année).
Partie 4 : Fonctions : manipuler les dates
216/414
www.openclassrooms.com
Précédent

- 216/413

Suivant