Порядок по нескольким столбцам не работает должным образом - PullRequest
1 голос
/ 10 апреля 2020

У меня есть sql:

GROUP BY dc.year, dc.month, d.user_id
ORDER BY dc.year DESC, d.user_id ASC

Результат:

UserId         Month            Year
 1               1              2020
 1               4              2020
 1               2              2020
 2               5              2019
 2               1              2019

Ожидаемый результат:

UserId         Month            Year
 1               1              2020
 1               2              2020
 1               4              2020
 2               1              2019
 2               5              2019  

Но я хочу заказать и по месяцам не только по годам. Я попробовал вот так ORDER BY dc.year DESC, dc.month ASC, d. user_id ASC, но не сработал так, как ожидалось, потому что я хочу перечислить каждый пользовательский заказ по году des c и по месяцу как c. Можете ли вы помочь мне, пожалуйста?

Ответы [ 4 ]

2 голосов
/ 10 апреля 2020

Похоже, вам не нужно user_id в предложении ORDER BY.

Попробуйте это:

ORDER BY dc.year DESC, d.user_id, dc.month 
2 голосов
/ 10 апреля 2020

Я хочу перечислить каждый заказ пользователя по году des c и по месяцу как c.

Что описывает:

ORDER BY d.user_id, dc.year DESC, dc.month
0 голосов
/ 10 апреля 2020

Вы можете использовать приведенный ниже код, чтобы получить результат в соответствии с ожидаемым результатом. Я попробовал это с самого конца и получил ожидаемый результат.

GROUP BY dc.year, dc.month, d.user_id
order by dc.year DESC, dc.month asc, d.user_id asc

Проверьте ниже изображение с решением:

https://snipboard.io/NeAHB5.jpg

0 голосов
/ 10 апреля 2020

ЗАКАЗАТЬ по d c .user_id AS C, d c .month AS C, d c .year DESC;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...