Mam tabelę z dziennikami
PERSON ID LOGDATE (DATETIME)
1000 2015-10-20 10:00:00
1000 2015-11-11 09:10:22
2001 2015-10-11 10:22:11
Muszę zamówić dane przez LOGDATE -DATETIME - ale tylko z najniższą datą dla każdego ID.
select PERSONALID, LOGDATE from TABLE group by PERSONALID order by
MIN(LOGDATE) DESC
Potrafię GRUPOWA według ID - ZAMÓWIENIE WEDŁUG MNIEJSZOŚCI (każdy wynik z ID), ale WYNIK FINALNY nie powoduje uporządkowania wyników do MIN DATE ..
RESULT:
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)
właściwą odpowiedzią jest:
RESULT:
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)
co jest nie tak?
Odpowiedzi:
4 dla odpowiedzi № 1Powinno to zrobić:
select PERSONALID, MIN(LOGDATE) as mindate
from TABLE
group by PERSONALID
order by mindate
0 dla odpowiedzi nr 2
Musisz wybrać MIN(LOGDATE)
, nie LOGDATE
. Wybór LOGDATE
powoduje, że MySQL zwraca wartość nieokreślony zapis z każdej grupy - patrz Obsługa MySQL GROUP BY po więcej informacji.