У меня есть структура таблицы как:SQL: Сортировка GROUP по времени и LIMIT результаты
Name Time
Joe 2012-02-22 22:11:26.0
Joe 2012-02-22 21:01:23.0
Sue 2012-02-22 20:57:10.0
john 2012-02-22 18:13:36.0
Fred 2012-02-22 16:56:57.0
Joe 2012-02-22 14:38:45.0
Joe 2012-02-22 14:38:45.0
Ralph 2012-02-22 14:26:20.0
... ...
(more Names and Times)
... ...
john 2010-03-10 15:27:39.0
john 2010-03-10 15:46:59.0
Я ищу топ-3 имен упорядоченных по времени. Таким образом, результат будет:
Joe, Sue, john
Я начал с запросом, как:
SELECT Name FROM table ORDER BY LOWER(TIME) DESC
Так что я хотел Ограничить результат с:
SELECT Name FROM table ORDER BY LOWER(TIME) DESC LIMIT 0 , 3
Но результат показывает первые 3 ряда в аспектированном виде:
Joe, Joe, Sue
Теперь я пытаюсь сгруппировать запрос по имени первого:
SELECT Name FROM table GROUP BY Name ORDER BY LOWER(TIME) DESC LIMIT 0 , 3
И да, что дает мне 3 разных имен, но в невоспроизводимое порядке. Я что-то упустил? Какой здесь был бы правильный синтаксис?
попробовал это. Но также показывает не правильные имена. И да, мне не нужна функция «НИЖНИЕ» –
Это действительно странно. Что он показывает и что вы ожидаете? –
Я обновил свой ответ. Если он все еще не работает, это означает, что упорядочение не работает должным образом. Убедитесь, что столбец имеет тип 'DATETIME'. –