如何在MySQL中更改Group By子句的默认顺序
时间:2020-03-06 14:20:43 来源:igfitidea点击:
默认情况下,GROUP BY
子句提取的数据按升序排列。
如何将其更改为降序。
解决方案
在GROUP BY
子句中添加DESC
,例如:
GROUP BY myDate DESC
"按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