MySQL數(shù)據(jù)查詢中如何使用集合/聚合函數(shù)查詢-創(chuàng)新互聯(lián)

小編給大家分享一下MySQL數(shù)據(jù)查詢中如何使用集合/聚合函數(shù)查詢,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:自適應(yīng)網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)、成都全網(wǎng)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

MySQL聚合函數(shù)如下:

函數(shù)作用
avg()返回某列的平均值
count()返回某列的行數(shù)
max()返回某列的較大值
min()返回某列的最小值
sum()返回某列值的和

(1)count()函數(shù)
(2)sum()函數(shù)
(3)avg()函數(shù)
(4)max()函數(shù)
(5)min()函數(shù)


(免費(fèi)學(xué)習(xí)推薦:mysql視頻教程)

(1)count()函數(shù)
  • count()函數(shù)統(tǒng)計(jì)數(shù)據(jù)表中包含的記錄行的總數(shù),或者根據(jù)查詢結(jié)果返回列中包含的數(shù)據(jù)行數(shù),有兩種使用方法:
    ①count(*)計(jì)算表中總的行數(shù),不管某列有數(shù)值或者為空值。
    ②count(字段名)計(jì)算指定列下總的行數(shù),計(jì)算時(shí)將忽略空值的行。

【例1】查詢customers表中總的行數(shù),SQL語(yǔ)句如下:

mysql> select count(*) as cust_num    -> from customers;+----------+| cust_num |+----------+|        4 |+----------+1 row in set (0.06 sec)

由查詢結(jié)果可知,count(*)返回customers表中記錄的總行數(shù),不管其值是什么。返回的總數(shù)的名稱為cust_num。

【例2】查詢customers表中有電子郵箱的顧客的總數(shù),SQL語(yǔ)句如下:

mysql> select count(c_email) as email_num    -> from customers;+-----------+| email_num |+-----------+|         3 |+-----------+1 row in set (0.00 sec)

上面兩個(gè)例子結(jié)果不同說(shuō)明兩種方式在計(jì)算總數(shù)的時(shí)候?qū)Υ齨ull值的方式不同,即指定列的值為空的行被count()函數(shù)忽略,但是如果不指定列,而在count()函數(shù)中使用*,則所有記錄都不忽略。

【例3】在orderitems表中,使用count()函數(shù)與group by關(guān)鍵字一起使用,用來(lái)計(jì)算不同分組中的記錄總數(shù)。

mysql> select o_num,count(f_id)
    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | count(f_id) |+-------+-------------+| 30001 |           4 || 30002 |           1 || 30003 |           1 || 30004 |           1 || 30005 |           4 |+-------+-------------+5 rows in set (0.00 sec)
(2)sum()函數(shù)
  • sum是一個(gè)求總和的函數(shù),返回指定列值的總和。

【例】在orderitems表中查詢30005號(hào)訂單一共購(gòu)買的水果總量,SQL語(yǔ)句如下:

mysql> select sum(quantity) as items_total    -> from orderitems    -> where o_num = 30005;+-------------+| items_total |+-------------+|          30 |+-------------+1 row in set (0.05 sec)

sum()可以和group by一起使用,用來(lái)計(jì)算每個(gè)分組的總和。

【例】在orderitems表中,使用sum()函數(shù)統(tǒng)計(jì)不同訂單號(hào)中訂購(gòu)的水果總量,SQL語(yǔ)句如下:

mysql> select o_num,sum(quantity) as items_total    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | items_total |+-------+-------------+| 30001 |          33 || 30002 |           2 || 30003 |         100 || 30004 |          50 || 30005 |          30 |+-------+-------------+5 rows in set (0.00 sec)

sum函數(shù)在計(jì)算時(shí),忽略值為null的行。

(3)avg()函數(shù)
  • avg()函數(shù)通過(guò)計(jì)算返回的行數(shù)和每一列數(shù)據(jù)的和,求得指定列數(shù)據(jù)的平均值。

  • avg()函數(shù)使用時(shí),其參數(shù)為要計(jì)算的列名稱,如果要得到多個(gè)列的多個(gè)平均值,則需要在每一列上使用avg()函數(shù)。

【例1】在fruits表中,查詢s_id=103的供應(yīng)商的水果價(jià)格的平均值,SQL語(yǔ)句如下:

mysql> select avg(f_price) as avg_price    -> from fruits    -> where s_id = 103;+-----------+| avg_price |+-----------+|  5.700000 |+-----------+1 row in set (0.05 sec)

【例2】在fruits表中,查詢每一個(gè)供應(yīng)商的水果價(jià)格的平均值,SQL語(yǔ)句如下:

mysql> select s_id,avg(f_price) as avg_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | avg_price |+------+-----------+|  104 |  7.000000 ||  101 |  6.200000 ||  103 |  5.700000 ||  107 |  3.600000 ||  102 |  8.933333 ||  105 |  7.466667 ||  106 | 15.700000 |+------+-----------+7 rows in set (0.00 sec)

group by 關(guān)鍵字根據(jù)s_id字段對(duì)記錄進(jìn)行分組,然后計(jì)算出每個(gè)分組的平均值,這種分組求平均值的方法非常有用。例如,求不同班級(jí)學(xué)生成績(jī)的平均值,求不同部門工人的平均工資,求各地的年平均氣溫等。

(4)max()函數(shù)
  • max()返回指定列中的較大值。

  • max()函數(shù)除了用來(lái)找出較大的列值或日期值之外,還能返回任意列中的較大值,包括返回字符類型的較大值。

【例1】在fruits表中查找市場(chǎng)上價(jià)格高的水果值,SQL語(yǔ)句如下:

mysql> select max(f_price) as max_price from fruits;+-----------+| max_price |+-----------+|     15.70 |+-----------+1 row in set (0.05 sec)

【例2】在fruits表中查找不同供應(yīng)商提供的價(jià)格高的水果值,SQL語(yǔ)句如下:

mysql> select s_id,max(f_price) as max_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | max_price |+------+-----------+|  104 |      7.60 ||  101 |     10.20 ||  103 |      9.20 ||  107 |      3.60 ||  102 |     11.20 ||  105 |     11.60 ||  106 |     15.70 |+------+-----------+7 rows in set (0.00 sec)

【例3】在fruits表中查找f_name的較大值,SQL語(yǔ)句如下:

mysql> select max(f_name) from fruits;+-------------+| max(f_name) |+-------------+| xxxx        |+-------------+1 row in set (0.00 sec)
(5)min()函數(shù)

- min()返回查詢列中的最小值。

【例1】在fruits表中查找市場(chǎng)上價(jià)格最低的水果值,SQL語(yǔ)句如下:

mysql> select min(f_price) as min_price    -> from fruits;+-----------+| min_price |+-----------+|      2.20 |+-----------+1 row in set (0.00 sec)

【例2】在fruits表中查找不同供應(yīng)商提供的價(jià)格最低的水果汁,SQL語(yǔ)句如下:

mysql> select s_id,min(f_price) as min_price    -> from fruits    -> group by s_id;+------+-------------+| s_id | min_price |+------+-------------+|  104 |        6.40 ||  101 |        3.20 ||  103 |        2.20 ||  107 |        3.60 ||  102 |        5.30 ||  105 |        2.60 ||  106 |       15.70 |+------+-------------+7 rows in set (0.00 sec)

看完了這篇文章,相信你對(duì)“MySQL數(shù)據(jù)查詢中如何使用集合/聚合函數(shù)查詢”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前文章:MySQL數(shù)據(jù)查詢中如何使用集合/聚合函數(shù)查詢-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://bm7419.com/article28/dpdpjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、品牌網(wǎng)站建設(shè)、云服務(wù)器外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)