select 字句中有个多字段,为什么group by后面可以只跟一个分组条件?
select 字句中有多个字段,为什么group by后面可以只跟一个分组条件?
sql基础教程书上写着:使用group by子句时,select子句中不能出现聚合键之外的列名
select 字句中有多个字段,为什么group by后面可以只跟一个分组条件?
sql基础教程书上写着:使用group by子句时,select子句中不能出现聚合键之外的列名
2019-06-04
mysql> SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING orders>=2;
GROUP BY的规定:
1、GROUP BY 后面可以包含多个列,这就是嵌套。
2、如果GROUP BY进行了嵌套,数据将在最后一个分组上进行汇总。
3、GROUP BY子句中列出来的每个列必须是检索列或有效的表达式(但不能是聚集函数),如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
4、除了聚集语句外,SELECT语句中的每一个列都必须在GROUP BY子句中给出。
5、如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多个NULL,它们将作为一个分组返回。
6、GROUP BY子句必须在WHERE 子句之后,ORDER BY 子句之前。
举报