@KuzmenkoArtem

Двойная сортировка SQL?

Есть примерно такая таблица
id--------name-----date----status
1---------Ivan-----25.03-----1
2---------Sergei-----25.02-----2
3---------Artem-----25.01-----1
4---------Sasha-----25.06-----1
5---------Aleksei-----25.05-----2
6---------Gena-----25.04-----1

Я хочу отсортировать сначало по статусу, а потом каждую группу по дате. Т.Е. я хочу получить следующие:

id--------name-----date----status
1---------Ivan-----25.01-----1
3---------Artem-----25.03-----1
4---------Sasha-----25.04-----1
2---------Sergei-----25.02-----2
6---------Gena-----25.06-----1
5---------Aleksei-----25.05-----2

Я знаю как сделать это через union и каждый select отсортировать по дате, а потом общую выборку по статусу. Но мне сказали и я сам думаю что можно сделать по другому ( например с group by или может еще както)

Какие есть идеи пишете. Спасибо.
  • Вопрос задан
  • 2232 просмотра
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
Ваш пример сортировки не совпадает с описанным "сначало по статусу, а потом каждую группу по дате.". Строки 2 и 6.

id--------name-----date----status
1---------Ivan-----25.01-----1
3---------Artem-----25.03-----1
4---------Sasha-----25.04-----1
6---------Gena-----25.06-----1
2---------Sergei-----25.02-----2
5---------Aleksei-----25.05-----2

Вот так - order by status, date
ASC и DESC исторически путаю, может быть order by status desc, date desc или что-то среднее между ними.
Ну и если дата хранится именно вот так, а не внятным date, то могут разные странности сортировки как строки, а не якобы даты.
Ответ написан
Комментировать
qonand
@qonand
Software Engineer
так а что мешает сделать двойную сортировку, аля ORDER BY status ASC, date ASC ?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы