select 字句中有個多字段,為什么group by后面可以只跟一個分組條件?
select 字句中有多個字段,為什么group by后面可以只跟一個分組條件?
sql基礎(chǔ)教程書上寫著:使用group by子句時,select子句中不能出現(xiàn)聚合鍵之外的列名
select 字句中有多個字段,為什么group by后面可以只跟一個分組條件?
sql基礎(chǔ)教程書上寫著:使用group by子句時,select子句中不能出現(xiàn)聚合鍵之外的列名
2019-06-04
舉報
2019-06-09
mysql> SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING orders>=2;
GROUP BY的規(guī)定:
1、GROUP BY 后面可以包含多個列,這就是嵌套。
2、如果GROUP BY進行了嵌套,數(shù)據(jù)將在最后一個分組上進行匯總。
3、GROUP BY子句中列出來的每個列必須是檢索列或有效的表達式(但不能是聚集函數(shù)),如果在SELECT中使用了表達式,則必須在GROUP BY子句中指定相同的表達式。不能使用別名。
4、除了聚集語句外,SELECT語句中的每一個列都必須在GROUP BY子句中給出。
5、如果分組列中具有NULL值,則NULL將作為一個分組返回。如果列中有多個NULL,它們將作為一個分組返回。
6、GROUP BY子句必須在WHERE 子句之后,ORDER BY 子句之前。