課程
/數據庫
/MySQL
/與MySQL的零距離接觸
select 字句中有多個字段,為什么group by后面可以只跟一個分組條件?
sql基礎教程書上寫著:使用group by子句時,select子句中不能出現聚合鍵之外的列名
2019-06-04
源自:與MySQL的零距離接觸 5-14
正在回答
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 子句之前。
舉報
本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-06-09
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 子句之前。