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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !