sql: заказать группу записей (смесь из 2 столбцов) - PullRequest
0 голосов
/ 16 марта 2020

Я хочу заказать таблицу по 2 колонкам. но не просто order by col1, col2. Лучше с примером -

id, name, time
1, a, 1000
2, b, 950
2, c, 900
1, d, 900

Я хочу, чтобы это было заказано как

id, name, time
1, a, 1000
1, d, 900
2, b, 950
2, c, 900

комбинация идентификатора и порядка времени. если вы видите, что это упорядочено по id (но самый последний заказ в первую очередь). а затем порядок времени в группе идентификаторов. или вы можете сказать, заказать группу записей, возможно.

Быстрая помощь приветствуется:)

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Получил ответ -

SELECT * FROM mytable p1 INNER JOIN (SELECT MAX(time) maxtime, id FROM mytable GROUP BY id) p2 ON p1.id = p2.id ORDER BY maxtime DESC, p1.id, p1.time DESC

0 голосов
/ 16 марта 2020

Вы можете использовать оконные функции:

order by max(time) over (id) desc, id, time desc

Это порядок максимум time на id, затем на id (если есть дубликаты) и, наконец, на time внутри каждого id.

...