1.聚合函數(shù)
聚合函數(shù)實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)計(jì)算,用于計(jì)算表中的數(shù)據(jù),返回單個(gè)計(jì)算結(jié)果。聚合函數(shù)包括COUNT、SUM、AVG、MAX、MIN等函數(shù),下面分別介紹。
(1)COUNT函數(shù)
COUNT函數(shù)用于計(jì)算組中滿足條件的行數(shù)或總行數(shù)。
語法格式:
COUNT ( { [ ALL | DISTINCT ] <表達(dá)式> } | * )
其中,ALL表示對所有值進(jìn)行計(jì)算,ALL為默認(rèn)值,DISTINCT指去掉重復(fù)值,COUNT函數(shù)用于計(jì)算時(shí)忽略NULL值。
【例6.12】求學(xué)生的總?cè)藬?shù)。
mysql> SELECT COUNT(*) AS 總?cè)藬?shù)
??? -> FROM student;
該語句采用COUNT(*)計(jì)算總行數(shù),總?cè)藬?shù)與總行數(shù)一致。
查詢結(jié)果:
+----------+
| 總?cè)藬?shù)? |
+----------+
|??????? 6???? |
+----------+
1 row in set (0.09 sec)
【例6.13】查詢通信專業(yè)學(xué)生的總?cè)藬?shù)。
mysql> SELECT COUNT(*) AS 總?cè)藬?shù)
??? -> FROM student
??? -> WHERE speciality='通信';
該語句采用COUNT(*)計(jì)算總?cè)藬?shù),并用WHERE子句指定的條件進(jìn)行限定為201836。
查詢結(jié)果:
+---------+
| 總?cè)藬?shù)? |
+---------+
|??????????3 |
+---------+
1 row in set (0.01 sec)
SUM和AVG函數(shù)
SUM函數(shù)用于求出一組數(shù)據(jù)的總和,AVG函數(shù)用于求出一組數(shù)據(jù)的平均值,這兩個(gè)函數(shù)只能針對數(shù)值類型的數(shù)據(jù)。
語法格式:
SUM / AVG ( [ ALL | DISTINCT ] <表達(dá)式> )
其中,ALL表示對所有值進(jìn)行計(jì)算,ALL為默認(rèn)值,DISTINCT指去掉重復(fù)值,SUM / AVG函數(shù)用于計(jì)算時(shí)忽略NULL值。
MAX和MIN函數(shù)
MAX函數(shù)用于求出一組數(shù)據(jù)的最大值,MIN函數(shù)用于求出一組數(shù)據(jù)的最小值,這兩個(gè)函數(shù)都可以適用于任意類型數(shù)據(jù)。
語法格式:
MAX / MIN ( [ ALL | DISTINCT ] <表達(dá)式> )
其中,ALL表示對所有值進(jìn)行計(jì)算,ALL為默認(rèn)值,DISTINCT指去掉重復(fù)值,MAX / MIN函數(shù)用于計(jì)算時(shí)忽略NULL值。
GROUP BY子句
GROUP BY子句用于指定需要分組的列。
語法格式:
GROUP BY [ ALL ] <分組表達(dá)式> [,…n]
其中,分組表達(dá)式通常包含字段名,ALL顯示所有分組。
HAVING子句
HAVING子句用于對分組按指定條件進(jìn)一步進(jìn)行篩選,過濾出滿足指定條件的分組。
語法格式:
[ HAVING <條件表達(dá)式> ]
其中,條件表達(dá)式為篩選條件,可以使用聚合函數(shù)。
當(dāng)WHERE子句、GROUP BY子句、HAVING子句、ORDER BY子句在一個(gè)SELECT語句中時(shí),執(zhí)行順序如下:
(1)執(zhí)行WHERE子句,在表中選擇行。
(2)執(zhí)行GROUP BY子句,對選取行進(jìn)行分組。
(3)執(zhí)行聚合函數(shù)。
(4)執(zhí)行HAVING子句,篩選滿足條件的分組。
(5)執(zhí)行ORDER BY子句,進(jìn)行排序。文章來源:http://www.zghlxwxcb.cn/news/detail-601257.html
注意: HAVING子句要放在GROUP BY子句的后面,ORDERBY子句放在HAVING子句后面。文章來源地址http://www.zghlxwxcb.cn/news/detail-601257.html
到了這里,關(guān)于Mysql的分組查詢和統(tǒng)計(jì)計(jì)算的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!