如何在mysql中更改Group By子句的默认顺序

时间:2008-09-18 10:27:07

标签: mysql sql

默认情况下,GROUP BY子句提取的数据按升序排序。 如何将其更改为降序。

4 个答案:

答案 0 :(得分:12)

您应该在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

答案 1 :(得分:8)

DESC添加到GROUP BY子句,例如:

GROUP BY myDate DESC

答案 2 :(得分:7)

正如MySQL documentation所说,

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来获得(小)加速。

答案 3 :(得分:1)

ORDER BY foo DESC