Ik blijf moeite hebben met mysql's GROUP BY clause en helaas schiet de documentatie in uitleg te kort. De search hier en op google ook...
---------------------
Correctie. Hier iemand met eenzelfde probleem: [rml][ mysql] snap resultaat van group by en max niet[/rml]
Ik geloof dat ik onderstaande probleem toch maar anders ga aanpakken. Postgresql is helaas geen optie.
---------------------
Ik heb het volgende, volgens mij relatief simpel, probleempje....
tabel:
Uit deze tabel wil ik twee afzonderlijke resultsets zien te halen:
1. gegroupeerd op num met alleen de laatste date
2. gegroupeerd op num met alleen de niet laatste date
levert simpelweg het eerste record op van een group (dus id 1, 4 en 5).
En als ik zoiets probeer:
dan krijg ik slechts 1 rij terug (rij met id=4) om mij niet duidelijke redenen.
Als ik MAX(date) ook opvraag bij de select, dan klopt deze wel, maar als ik de MAX(date) gebruik in een WHERE of HAVING dan krijg ik niet terug wat ik wil hebben.
Hoe pak je zoiets nou wel aan?
---------------------
Correctie. Hier iemand met eenzelfde probleem: [rml][ mysql] snap resultaat van group by en max niet[/rml]
Ik geloof dat ik onderstaande probleem toch maar anders ga aanpakken. Postgresql is helaas geen optie.
---------------------
Ik heb het volgende, volgens mij relatief simpel, probleempje....
tabel:
code:
1
2
3
4
5
6
7
| id num title date 1 1 abc 2004-01-01 2 1 abc 2004-02-08 3 1 abc 2004-03-02 4 2 def 2004-01-05 5 3 ghi 2004-01-01 6 3 ghi 2004-01-02 |
Uit deze tabel wil ik twee afzonderlijke resultsets zien te halen:
1. gegroupeerd op num met alleen de laatste date
2. gegroupeerd op num met alleen de niet laatste date
code:
1
| select id, num, title, date from reports group by num |
levert simpelweg het eerste record op van een group (dus id 1, 4 en 5).
En als ik zoiets probeer:
code:
1
| select id, num, title, date from reports group by num having date=max(date) |
dan krijg ik slechts 1 rij terug (rij met id=4) om mij niet duidelijke redenen.
Als ik MAX(date) ook opvraag bij de select, dan klopt deze wel, maar als ik de MAX(date) gebruik in een WHERE of HAVING dan krijg ik niet terug wat ik wil hebben.
Hoe pak je zoiets nou wel aan?
[ Voor 13% gewijzigd door Explore op 03-08-2004 13:17 ]
[ specs ] [ Tweaker gallery ]