Ответ 1
SELECT NAME, MAX(TIME) as TIME
FROM table
GROUP BY time
ORDER BY time DESC
У меня есть следующая таблица:
ID NAME TIME 1 A 0 2 A 3 3 B 1
Я использую следующий запрос:
SELECT * FROM `table` GROUP BY `NAME`
ID NAME TIME 1 A 0 3 B 1
И я хочу использовать GROUP BY
для создания такого результата (сортировка скидки по столбцу TIME):
ID NAME TIME 2 A 3 3 B 1
SELECT NAME, MAX(TIME) as TIME
FROM table
GROUP BY time
ORDER BY time DESC
select * from (select * from table order by TIME DESC) t group by NAME
Попробуйте это решение здесь http://www.cafewebmaster.com/mysql-order-sort-group, он также смог решить мою проблему:)
Пример:
SELECT * FROM
(
select * from `my_table` order by timestamp desc
) as my_table_tmp
group by catid
order by nid desc
Ну, вам нужно решить, что вы хотите видеть в ID и полях времени после группы. В качестве примера я выберу MAX (ID) и SUM (время), а затем закажу по общему времени desc.
SELECT MAX(id), name, SUM(time) AS totaltime
FROM YourTableName
GROUP BY name
ORDER BY totaltime DESC
Надеюсь, что это поможет.