Как изменить порядок по умолчанию предложения Group By в mysql - PullRequest
6 голосов
/ 18 сентября 2008

По умолчанию данные, извлеченные предложением GROUP BY, упорядочены по возрастанию. Как поменять его на нисходящий.

Ответы [ 4 ]

12 голосов
/ 12 октября 2010

Вы должны использовать производные таблицы в вашем SQL. Например, если вы хотите выбрать самую последнюю строку для конкретного действия, которое вы пытаетесь использовать:

select * 
from activities 
group by id_customer 
order by creation_date

но это не работает. Попробуйте вместо:

SELECT * 
FROM ( select * 
       from activities 
       order by creation_date desc ) sorted_list 
GROUP BY id_customer
8 голосов
/ 18 сентября 2008

Добавьте DESC к предложению GROUP BY, например, :

GROUP BY myDate DESC
7 голосов
/ 19 сентября 2008

Как указано в MySQL документации ,

SELECT * FROM foo GROUP BY bar

эквивалентно

SELECT * FROM foo GROUP BY bar ORDER BY bar

Поведение по умолчанию изменить нельзя, но вы можете использовать

SELECT * FROM foo GROUP BY bar ORDER BY bar DESC

без каких-либо штрафов за скорость, так как сортировка все равно будет выполняться в сгруппированном поле. Кстати, когда сортировка не важна, вы можете получить (небольшое) ускорение, используя ORDER BY NULL.

1 голос
/ 18 сентября 2008

ORDER BY foo DESC * * 1002

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