一、GROUP BY語句的細節
我們知道,在sql中,GROUP BY語句主要用來給數據分組,以便能對每個組進行聚集計算,但是GROUP BY也有一些限制需要知道:
1. GROUP BY字句可以包含任意數目的列,使得能對分組進行嵌套,為數據分組提供更細致的控制。
2.如果嵌套了分組,數據將在最后規定的分組上進行匯總,也就是建立分組時,所有列都一起計算。
3.GROUP BY字句中列出的每個列都必須是檢索列或者有效表達式,但不能是聚集函數,別名也不能使用。
4.除了聚集語句外,SELECT語句中的每個列都必須在GROUP BY字句中給出。(沒給出的那個字段實際上沒什么用)
5.如果分組列中有NULL值,則NULL將作為一個分組返回。如果列中有多行NULL值,它們將分為一組。
6.GROUP BY 子句必須在WHERE之后,ORDER BY 之前
二、SELECT語句順序
字句 |
說明 |
是否必須使用 |
SELECT |
要返回的列或表達式 |
是 |
FROM |
從中檢索數據的表 |
僅在從表中選擇數據時使用 |
WHERE |
行級過濾 |
否 |
GROUP BY |
分組說明 |
僅在按組計算聚集時使用 |
HAVING |
組級過濾 |
否 |
ORDER BY |
輸出排序順序 |
否 |
LIMIT |
要檢索的行數 |
否 |
三、參考
1. 《MYSQL必知必會》
(完)