Как изменить порядок по умолчанию для предложения Group By в mysql

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

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
7
0
11 650
4

Ответы 4

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

GROUP BY myDate DESC

ORDER BY foo DESC?

Как говорит Документация 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.

Вы должны использовать производные таблицы в своем 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

Другие вопросы по теме