<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
找出最高工資:
mysql> select max(sal) from emp; +----------+ | max(sal) | +----------+ | 5000.00 | +----------+ 1 row in set (0.00 sec)
找出最低工資:
mysql> select min(sal) from emp; +----------+ | min(sal) | +----------+ | 800.00 | +----------+ 1 row in set (0.00 sec)
將所有人的工資相加:
mysql> select sum(sal) from emp; +----------+ | sum(sal) | +----------+ | 29025.00 | +----------+ 1 row in set (0.00 sec)
求所有人的平均工資:
mysql> select avg(sal) from emp; +-------------+ | avg(sal) | +-------------+ | 2073.214286 | +-------------+ 1 row in set (0.00 sec)
計算員工數量總和:
mysql> select count(ename) from emp; +--------------+ | count(ename) | +--------------+ | 14 | +--------------+ 1 row in set (0.00 sec)
count(具體欄位) 表示該欄位下不為null的行數
count(*) 表示整個範圍的行數,因為資料庫表中並不存在記錄全為null的情況!
GROUP BY 語句根據一個或多個列對結果集進行分組。
在分組的列上我們可以使用 COUNT, SUM, AVG等函數。
GROUP BY 語法
SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
請注意,在進行關鍵字組合的時候,他們的順序是這樣的:
select ...
from ...
where ...
group by ...
order by ...
這樣的順序是不可以被更改的,且他們在Mysql內部的執行順序是:
from
where
group by
select
order by
注意:分組函數在進行使用的時候要先分組才能使用
那麼現在出現了一個問題,如下語句看似違反了組合順序,但是它為什麼是正確的呢?
select sum(sal) from emp;
因為select在group by之後執行
現在,我們來看一個分組查詢的範例,找出每個工作崗位的工資和:
mysql> select job,sum(sal) from emp -> group by job; +-----------+----------+ | job | sum(sal) | +-----------+----------+ | CLERK | 4150.00 | | SALESMAN | 5600.00 | | MANAGER | 8275.00 | | ANALYST | 6000.00 | | PRESIDENT | 5000.00 | +-----------+----------+ 5 rows in set (0.01 sec)
找出每個部門的最高薪資:
mysql> select deptno,max(sal) from emp group by deptno; +--------+----------+ | deptno | max(sal) | +--------+----------+ | 20 | 3000.00 | | 30 | 2850.00 | | 10 | 5000.00 | +--------+----------+ 3 rows in set (0.00 sec)
以上這些都是小兒科,現在我們來看看如何將兩個欄位進行聯合分組:
查詢每個部門不同崗位的最高薪資:
mysql> select deptno,job,max(sal) -> from emp -> group by deptno,job; +--------+-----------+----------+ | deptno | job | max(sal) | +--------+-----------+----------+ | 20 | CLERK | 1100.00 | | 30 | SALESMAN | 1600.00 | | 20 | MANAGER | 2975.00 | | 30 | MANAGER | 2850.00 | | 10 | MANAGER | 2450.00 | | 20 | ANALYST | 3000.00 | | 10 | PRESIDENT | 5000.00 | | 30 | CLERK | 950.00 | | 10 | CLERK | 1300.00 | +--------+-----------+----------+ 9 rows in set (0.00 sec)
找出每個部門的最高薪資,要求顯示最高薪資大於3000的:
請注意:如果我們想要對分完組之後的資料進行再次的過濾,需要使用having子句,having不能單獨進行使用,必須和group by進行聯合使用
mysql> select deptno,max(sal) -> from emp -> group by deptno -> having max(sal) > 3000; +--------+----------+ | deptno | max(sal) | +--------+----------+ | 10 | 5000.00 | +--------+----------+ 1 row in set (0.00 sec)
如上的sql語句效率很低,我們嘗試進行一個小的優化:
mysql> select deptno,max(sal) -> from emp -> where sal > 3000 -> group by deptno; +--------+----------+ | deptno | max(sal) | +--------+----------+ | 10 | 5000.00 | +--------+----------+ 1 row in set (0.00 sec)
where 和 having 請優先選擇where
找出每個部門平均薪資大於2500的:
我們發現無法使用where實現此需求,這時只能使用having子句:
mysql> select deptno,avg(sal) -> from emp -> group by deptno -> having avg(sal) > 2500; +--------+-------------+ | deptno | avg(sal) | +--------+-------------+ | 10 | 2916.666667 | +--------+-------------+ 1 row in set (0.00 sec)
找出每個崗位的平均薪資,要求顯示平均薪資大於1500的,除了MANAGER外,要求按照平均薪資降序排列:
mysql> select job,avg(sal) -> from emp -> where job != 'MANAGER' -> group by job -> having avg(sal) > 1500 -> order by avg(sal) desc; +-----------+-------------+ | job | avg(sal) | +-----------+-------------+ | PRESIDENT | 5000.000000 | | ANALYST | 3000.000000 | +-----------+-------------+ 2 rows in set (0.00 sec)
到此這篇關於MySQL資料庫學習之分組函數詳解的文章就介紹到這了,更多相關MySQL資料庫 分組函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援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