很多時候,我們查詢數據的時候都不會把明細數據查詢出來,那樣一般意義也不大。更多的時候是根據業務需求,把數據聚合成業務能直接使用的數據。MYSQL中有5個聚合函數,如下面5個,用的最多的還是count和sum,下面分別介紹一下用法。
專注于為中小企業提供成都網站建設、網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業克山免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千多家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
【COUNT】
在MySQL中,COUNT()函數統計數據表中包含的記錄行的總數,或者根據查詢結果返回列中包含的數據行數,使用方法有以下兩種:
求order表中,查詢一共有多少條訂單數,SQL語句如下↓
【SUM】
在MySQL中,SUM()是一個求總和的函數,返回指定列值的總和。
求order表中所有產品銷售數量,SQL語句如下↓
【AVG】
在MySQL中,AVG()函數通過計算返回的行數和每一行數據的和,求得指定列數據的平均值。
求order表中,2021年所有產品的平均單價,SQL語句如下↓
【MAX/MIN】
在MySQL中,MAX()函數是用來返回指定列中的最大值。
求order表中,查詢最大的單價價格,SQL預計如下↓
在MySQL中,MIN()函數是用來返回指定列中的最小值。
求order表中,查詢最小的單價價格,SQL預計如下↓
【結合GROUP BY】
正常情況下,聚合函數都是搭配著GROUP BY來使用的??梢允前词》菥酆稀a品聚合、時間聚合等等。下面演示每個品牌最低單價的聚合,其他幾個聚合函數使用方式一樣,SQL語句如下↓
還可以用ORDER BY排個序,求每個品牌累計銷售價格的SQL語句,從高到低排序↓
End
◆ PowerBI開場白
◆ Python高德地圖可視化
◆ Python不規則條形圖
MySQL 的常見的聚合函數有 AVG、COUNT、SUM、MIN、MAX,上一小節介紹了 AVG、COUNT、SUM 三種聚合函數,本小節介紹如何使用 MIN、MAX 兩種聚合函數,另外再介紹一下如何在 GROUP BY 中使用聚合函數。
以 teacher 表為例,先查所有 teacher 信息:
查詢結果如下圖:
可以使用 MIN() 函數對結果集取年齡最小值的數據:
執行結果如下圖:
以 student 表為例,先查看所有 student 信息:
查詢結果如下圖:
可以使用 MAX() 函數對結果集取年齡最大值的數據:
執行結果如下圖:
以 student_course、course、student 表內連接查詢為例:
查詢結果如下圖:
使用 AVG 函數取分組數據平均年齡:
執行結果如下圖 :
可以使用 HAVING 對上述結果篩選,例如選出選課學生平均年齡大于 20 的課程數據:
執行結果如下圖:
本小節介紹了如何使用 MIN、MAX 兩種聚合函數對查詢結果集進行篩選,還介紹了如何在 GROUP BY中分組使用聚合函數,并且使用 HAVING 后面的條件對分組數據進行篩選,需要注意的是聚合函數產生的數據列最好重命名,這是因為后端程序語言在處理這些數據時需要規范的字段名,例如:
查詢結果如下圖:
還是想快點寫完,進入下一個PowerBI專題了,應該后面再寫五篇左右,就開始PowerBI系列了,然后會加一些SQL的綜合使用案例。窗口函數寫三篇就差不多了,后面應該還會加一些綜合案例。這一篇主要介紹一下聚合函數和NTH_VALUE、NTILE函數,聚合函數和配上窗口函數使用場景還是很多,這個可以稍微 關注一下。
【NTH_VALUE】
NTH_VALUE(EXP,N),返回窗口中第N個EXP的值,EXP可以是表達式,也可以是列名。繼續用之前的數據,取出每個用戶的第二次購買的日期,SQL語句如下
從結果很明顯看出,第一次購買日期是空值,從第二個購買日期開始,都是第二條購買日期記錄。
【NTLIE】
NTILE(N),將分區中的有序數據分為n個桶,記錄桶號?,F在需要根據金額高低,把每個分區分成3組,SQL和結果如下
【聚合函數】
聚合函數參考這一篇, 《MySQL聚合函數》 。通過聚合函數作為窗口函數運算,可以動態計算在指定的窗口內的各種聚合函數值。計算每個用戶,按時間排序,截止每個時間的訂單數量、訂單金額、平均金額、最大金額、最小金額。SQL語句和結果如下
End
網站題目:mysql聚合函數怎么用 am4320115
標題路徑:http://vcdvsql.cn/article30/ddojgpo.html
成都網站建設公司_創新互聯,為您提供動態網站、標簽優化、品牌網站設計、定制網站、電子商務、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯