[GROUP BY] arrachage de cheveux et migraine
Bonjour.
J'ai lu attentivement l'excellentissime tuto Démythifier le GROUP BY Par Roland Bouman -
Cédric Duprez (traducteur), et notamment les chapitres 3 et 4.
Mon problème est exactement celui évoqué dans ces chapitres, mais moi, je voudrais un résultat, pas une erreur.
Je m'explique, en reprenant l'exemple du tuto :
une table messagerie.pet
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| +----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+ |
Mais moi je cherche les animaux nés les premiers de chaque espèce !
Or la requète suivante :
Code:
1 2 3 4 5
| SELECT species
, MIN(birth) -- date de naissance du plus vieil animal par espèce
, MAX(birth) -- date de naissance du plus jeune animal par espèce
, birth -- date de naissance de ... oh oh...!
FROM menagerie.pet |
renvoie ça :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
+---------+------------+------------+------------+
| species | MIN(birth) | MAX(birth) | birth |
+---------+------------+------------+------------+
| bird | 1997-12-09 | 1998-09-11 | 1998-09-11 |
| cat | 1993-02-04 | 1994-03-17 | 1993-02-04 |
| dog | 1979-08-31 | 1990-08-27 | 1989-05-13 |
| hamster | 1999-03-30 | 1999-03-30 | 1999-03-30 |
| snake | 1996-04-29 | 1996-04-29 | 1996-04-29 |
+---------+------------+------------+------------+
5 rows in set (0.00 sec) |
Et il est bien spécifié que c'est normal, et même que l'on ne devrait même pas afficher une colonne qui n'est pas dans le GROUP BY (d'ou les chapitre 5 et 6 : eviter le problème).
Mais mon problème, c'est que justement, j'aimerais bien un résultat !
A vot' bon coeur, M'sieurs Dames.
Pitié pour les rares cheveux qui me restent !