mysql中order by和分组能一起使用么

嗯...MySQL...是的...分组查询...还可以用ORDERBY排序...
是的...就是这样...记得...2 02 2 年...我在一个小城市做一个项目...那是一个数据库...当时...我想不通...
用GROUPBY...比如...按部门...对...GROUP BY DEPARTMENT...然后...COUNT()...统计人数...比如...A部门有5 0人... B部门有3 0人...
然后...我们需要用ORDER BY...来排序...做...比如...如果想知道哪个部门人数最多...用DESC...降序...
这个SQL...这样写... SELECT DEPARTMENT, COUNT() AS TOTAL_employees... FROM EMPLOYEES... GROUP BY DEPARTMENT... ORDER BY Total_employees DESC...
当时...我也很困惑...不管怎么写,都是对的...是DESC...感觉是降序...是...没错...
后来...我意识到...这个total_employees...是一个COUNT()...是聚合...所以...只能用ORDERBY...
如果...比如...你还想看...平均工资...然后添加AVG(salary)...然后...只需使用ORDERBY...首先按总人数降序排序...然后按平均工资升序排序...
就这样... SELECT Product_id, SUM(quantity) AS Total_quantity, AVG(price) AS avg_price... FROM ORDERS... GROUP BY Product_id... ORDER BY Total_quantity DESC, avg_price ASC...
那就...对...只是另一个聚合函数...只是多一个排序条件...
但是...要小心...如果在 ORDERBY 之后...没有分组...并且没有分组列...将报告错误...
例如示例... ERROR... SELECT DEPARTMENT, COUNT()... FROM EMPLOYEES... GROUP BY DEPARTMENT... ORDER BY member_name...
这不起作用...因为员工姓名...不在 GROUP BY... 也不聚合函数...所以...它不起作用...
解决方案...是...添加员工姓名...到GROUP BY...或者...将其更改为聚合函数...如MAX(employee_name)...然后ORDER BY...
嗯...就这样...MySQL...允许所以...但是...要小心...排序的基础...对列进行分组...或者...聚合结果...
性能...可能...很...慢...如果...数据量很大...就像数百万...
最好...用于...分组列...和...排序列...可能...更快...
总之...MySQL...支持这个...GROUPBY后面的ORDER BY...使用批处理函数...排序...非常方便...
例如...在2 02 2 年...在上海...某家公司...做一份报告...按产品类别...统计销售额...然后按销售额降序排序...
SQL...是... SELECT CATEGORY, SUM(Sales) AS Total_sales... FROM SALES_DATA... GROUP BY CATEGORY... SORTING BY TOTAL_Sales DESC...
好的... 就是这样... 记住... 不要使用... 非聚合或非聚合列集体……按顺序……

mysql 中 group by 与 order by 的顺序

MySQL中,先GROUPBY后ORDERBY,先分组后排序。
是的,这就是问题所在。
我以前遇到过这个。
分组后,按条件排列。
要查找最大值和最小值,请首先在 GROUPBY 中使用 MAX 或 MIN。
首先对数据进行排序,然后使用子查询进行分组。
亲自看看并查看结果。