除非特殊說明,彙總函式均忽略 null 值的記錄。
除非特殊說明,彙總函式均在沒有匹配記錄(記錄集為空白)的情況下均返回 null 值。
如果在沒有使用group by的語句中使用彙總函式,相當於對所有的行進行分組。
Aggregate (GROUP BY
) Functions
Name |
Description |
AVG() |
Return the average value of the argument |
BIT_AND() |
Return bitwise and |
BIT_OR() |
Return bitwise or |
BIT_XOR() (v4.1.1) |
Return bitwise xor |
COUNT(DISTINCT) |
Return the count of a number of different values |
COUNT() |
Return a count of the number of rows returned |
GROUP_CONCAT() (v4.1) |
Return a concatenated string |
MAX() |
Return the maximum value |
MIN() |
Return the minimum value |
STDDEV_POP() (v5.0.3) STDDEV() STD() |
Return the population standard deviation |
STDDEV_SAMP() (v5.0.3) |
Return the sample standard deviation |
SUM() |
Return the sum |
VAR_POP() (v5.0.3) VARIANCE() (v4.1) |
Return the population standard variance |
VAR_SAMP() (v5.0.3) |
Return the sample variance |
bit_and() 如果沒有行返回,則為 最大的unsigned bigint整數:18446744073709551615
bit_or()、bit_xor() 如果沒有行返回,則為 0
count(*) 返回所有行的資料,包括null,如果沒有行返回,則為 0
count(expr)返回所有非null的資料,如果沒有行返回,則為 0
count(distinct expr)返回所有非null的不同資料,如果沒有行返回,則為 0;和sql標準不相容,標準sql返回所有不同的資料的行數,包括null值
group by的rollup統計修飾詞。相當於sqlserver的rollup功能!
mysql對標準的sql語言的group by的擴充:在select列表中可以出現不在 group by 中的列,此時,該對group by的隱藏列的值是隨機抽取的。所有應該保證該列的值對應group by的分組列來說是 相同的才有意義!當然除非你就想這樣!類似的還有having的處理。所以,如果你想避免這個不怎麼樣的mysql擴充,可以通過設定 ONLY_FULL_GROUP_BY
SQL mode is enabled來解決。