Прошу помочь вот с каким вопросом. Никак не могу построить SQL запрос в MySQL (хотя мне кажется конкретная платформа здесь не важна). Есть таблица с полямиid,
datetime,
value1 int,
value2 int,
value3 int
Каждый день в БД вносятся данные в хронологическом порядке (хронология по времени). На другой день тоже самое - например
1, 2010-05-10 12:03, 10, 20, 30
2, 2010-05-10 13:50, 15, 16, 45
3, 2010-05-10 18:15, 25, 48, 25
4, 2010-05-11 10:07, 09, 56, 32
5, 2010-05-11 14:20, 92, 89, 78
6, 2010-05-12 11:02, 14, 65, 38
7, 2010-05-12 11:05, 05, 11, 44
Мне нужно сделать выборку следующего вида
2010-05-10 18:15, 25, 48, 25
2010-05-11 14:20, 92, 89, 78
2010-05-12 11:05, 05, 11, 44
т.е получить последнюю запись за каждый день за выбранный интервал. Записей внутри дян может быть много.
Запросы типа
SELECT max(datatime), value1, value2, value3 FROM tbl_test;
SELECT max(datatime), value1, value2, value3 FROM tbl_test GROUP BY date(datetime);
SELECT max(datatime), value1, value2, value3 FROM tbl_test GROUP BY date(datetime) ORDER BY datetime DESC;
не дают желаемого результата :( (и это расстраивает). Возвращается вот что
|------ самое поздее время в рамках одного дня
|
2010-05-10<--| 18:15, 10, 20, 30 <-- НО! данные из ПЕРВОЙ записи внутри дня...
2010-05-11 14:20, 09, 56, 32
2010-05-12 11:05, 11, 11, 44
Т.е нужно что то типа сортировки в обратном пордки ВНУТРИ групп (внутридневных групп) либо что то типа функции last - которая возвращала бы последнюю запись во внутредневном наборе.
У меня есть ощушение что это сделать можно одним запросом но видимо меня чета заклинило.
Буду очень признателен за ответ.