<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天的章節我們將要來學習一下 “聚合函數” ;首先我們需要學習聚合函數對資料進行統計分析,比如說求最大值、最小值、平均值之類的場景。但是單純的使用聚合函數,只能做全表範圍的統計分析。如果想要把記錄分組分別統計,需要使用 “GROUP BY” 和 “HAVING” 這樣的分組子句了。關於分組查詢的應用,將在下一章節為大家進行講解。當前章節我們還是學習一下 “聚合函數” 的基本使用。
聚合函數是用來做簡單的資料統計的,比如說統計一下 “員工表” 中的平均工齡是多少年啊,員工表中一共有多少條記錄等等… 這些都需要使用到聚合函數。
聚合函數也被稱為 “彙總函數” ,在資料的查詢分析中,應用的十分廣泛。可以幫助我們實現對資料的求和、求最大值、求最小值、求平均值等等。
如果不指定統計的範圍,那麼聚合函數統計的範圍就是整張資料表,該章節我們所講解的 “聚合函數” 就是針對整張資料表範圍的。
聚合函數演示案例:(求員工表中的平均月收入是多少?)
SELECT AVG(sal + IFNULL(comm,0)) AS 平均工資 from t_emp; -- AVG:聚合函數,求平均值使用 -- IFNULL:IFNULL 函數的語法,當第一個引數的值為null 的時候,則返回第二個引數的值
PS:需要注意的地方,在聚合函數的返回結果集(無論是求和、最大值、最小值、還是求平均數),結果集只有一個返回資料。
SUN 函數用於求和,只能用於數位型別;如果用於字元型別的資料,則統計結果為0;如果用於時間型別的資料的求和,則結果是毫秒數的相加。
SQL 語句演示 SUM函數 案例(統計 10、20 部門的員工的月薪的總和)
SELECT SUM(sal) FROM t_emp WHERE deptno IN (10, 20)
SQL 語句演示 SUM函數 案例(統計 ename(欄位) 的綜合 )
SELECT SUM(ename) FROM t_emp WHERE deptno IN (10, 20)
MAX 函數用於獲取非空值的最大值。
SELECT MAX(comm) FROM t_emp; -- 比如這種想要獲取 "comm" 欄位的非空的最大值,直接套一個 MAX() 函數即可。
SQL 語句演示 MAX函數 案例(查詢 10、20 部門的月收入最高的員工)
SELECT MAX(sal + IFNULL(comm,0)) AS max_sal FROM t_emp WHERE deptno IN (10, 20) -- MAX:聚合函數,求最大值使用 -- IFNULL:IFNULL 函數的語法,當第一個引數的值為null 的時候,則返回第二個引數的值
SQL 語句演示 MAX函數 案例(查詢 員工姓名 最長的名字的長度)
SELECT MAX(LENGTH(ename)) AS length_ename FROM t_emp; -- LENGTH:LENGTH函數可以統計字元的個數計算其長度
與MAX 函數對應的是 MIN 函數,用於獲得非空值的最小值。
SQL語句演示 MIN函數 案例(查詢 員工編號最小 的員工)
SELECT MIN(empno) AS min_empno FROM t_emp;
SQL語句演示 MIN函數 案例(查詢 最早入職 的員工)
SELECT MIN(hiredate) AS min_hiredate FROM t_emp;
在上文我們已經演示過了 AVG 函數的使用方法,AVG 函數是用於獲得非空值的平均值;如果用於非數位資料的統計,輸出結果為 0 。
聚合函數演示案例:(求員工表中的平均月收入是多少?)
SELECT AVG(sal + IFNULL(comm,0)) AS 平均工資 from t_emp; -- AVG:聚合函數,求平均值使用 -- IFNULL:IFNULL 函數的語法,當第一個引數的值為null 的時候,則返回第二個引數的值
COUNT 函數用於獲得記錄的數量,COUNT 函數有兩種用法。
第一種:在 COUNT() 函數的 括號內,輸入一個 “*” 即可,記錄下包含空值的查詢記錄的數量。範例:COUNT(*)
第二種:在 COUNT() 函數的 括號內,輸入要統計的列名即可,記錄下包含非空值的查詢的記錄的數量。範例:COUNT(列名)
SQL語句演示 COUNT(*) 案例
SELECT COUNT(*) FROM t_emp;
SQL語句演示 COUNT(列名) 案例
SELECT COUNT(comm) FROM t_emp;
SQL 案例1 - 語句演示:(查詢 10、20部門中,底薪超過 2000 並且工齡超過 15年 的員工人數)
SELECT COUNT(*) FROM t_emp WHERE deptno IN (10, 20) AND sal >= 2000 AND DATEDIFF(NOW(),hiredate)/365 >= 15;
SQL 案例2 - 語句演示:(查詢 1985年之後入職的員工,並且底薪超過公司平均底薪的員工的數量)
SELECT COUNT(*) FROM t_emp WHERE hiredate >= "1985-01-01" AND sal >= AVG(sal)
PS:表面上看這個 SQL 是正常的,但是這個 SQL 語是無法得出想要的結果的,因為語法上有錯誤。WHERE 子句中出現了聚合函數,這一點大家一定要注意,聚合函數 一定不能出現在 WHERE 子句中。
PS:WHERE 子句中不能出現 聚合函數 的根本原因還要從 子句的執行順序來說起。sql語句的執行過程是:from-->where-->group by -->having --- >order by --> select;
PS:聚合函數是針對結果集進行的,但是where條件並不是在查詢出結果集之後執行,所以主函數放在where語句中,會出現錯誤。
PS:關於如何解決這個問題,將在下一章節的 "分組查詢的應用" 進行詳細的講解。
以上就是深入瞭解MySQL中聚合函數的使用的詳細內容,更多關於MySQL聚合函數的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45