亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL初學者可以告別分組聚合查詢的困擾了

 更新時間:2021年10月26日 14:22:57   作者:數(shù)據(jù)分析與統(tǒng)計學之美  
這篇文章主要為大家介紹了MySQL分組聚合查詢的難點講解,幫助MySQL初學著告別分組聚合查詢的困擾,有需要的朋友可以借鑒參考下,希望能夠有所進步

1.分組查詢的原理圖

在這里插入圖片描述

對上述原始數(shù)據(jù),按照DEPARTMENT_ID(員工id)分組統(tǒng)計SALARY(薪水)的平均值。

在這里插入圖片描述

上述原理寫成代碼,應該怎么寫呢?

select 
	department_id,avg(salary)
from 
	test
group by 
	department_id;

可以清楚地看到,使用department_id進行分組后,系統(tǒng)默認將department_id相同的號所在的行,分配在一起,你有幾個不同的department_id,就會分為幾組,每個組中的數(shù)據(jù)行數(shù),不一定都要相同。

當自動分配完成后,會根據(jù)你所寫的分組函數(shù),進行組內(nèi)運算。

也就是說,你使用的是sum()函數(shù),就會組內(nèi)求和;當你使用的是avg()函數(shù),就會組內(nèi)求平均值;當你使用的是count()函數(shù),就會進行組內(nèi)計數(shù);當你使用的是max()函數(shù),就會進行組內(nèi)求最大值;你使用的是min()函數(shù),就會進行組內(nèi)求最小值。

2.group by關鍵字語法詳解

有些小白在學習MySQL的過程中,很多都是在group by關鍵字這個地方卡殼。于是我希望自己能夠用白話圖文的方式,讓你真正搞明白這個關鍵字的含義。

在這里插入圖片描述

group by是用于分組查詢的關鍵字,一般是配合sum(),avg(),count(),max(),min()聚合函數(shù)使用的。也就是說SQL語句中只要有group by,那么在select后面的展示字段中一般會有聚合函數(shù)(5個聚合函數(shù))中的一個或多個函數(shù)出現(xiàn)。觀察上圖,有一點你需要記住,你用表中的字段A進行分組后,一般就需要對表中的其它字段,使用聚合函數(shù),這樣意義更大,而不是還對字段A使用聚合函數(shù),沒啥太大意義。

我們再思考下面這個問題!

當SQL語句中使用了group by后,在select后面一定有一個字段使用了聚合函數(shù)(5個聚合函數(shù))。但是除了這個聚合函數(shù),select后面還可以添加其他什么字段嗎?

答案肯定是可以的!但是該字段有一定的限制,并不是什么字段都可以。也就是說,當SQL語句中使用了group by關鍵字后,select后面除了聚合函數(shù),就只能是group by后面出現(xiàn)的字段。也就是圖中的字段A,select后面只能存在group by后面的字段。

3.一個簡單的分組查詢的案例

案例 :按照部門編號deptno分組,統(tǒng)計每個部門的平均工資。

select 
    deptno,avg(sal) avgs
from 
    emp
group by 
    deptno

結(jié)果如下:

在這里插入圖片描述

4.分組前篩選和分組后篩選

這個知識點就是要帶著大家理解一下,什么使用該用where篩選?什么時候該用having篩選?這個知識點對于學習MySQL的小白來說,也是一個棘手的事兒。不用擔心,跟著黃同學學MySQL,沒有學不會的。

1)原始表和結(jié)果集的概念

原始表指的是數(shù)據(jù)庫中真正存在的那個表,使用【select * from 表名】查詢出來的就是原始表信息。結(jié)果集指的是在SQL語句中,添加其它任何一個限制條件,最終展示給我們表,都是結(jié)果集。添加不同的限制條件,查詢出來的結(jié)果集也是不同的。原始表只有一個,結(jié)果集卻是各種各樣的。

2)黃同學支大招

只要是需求中,涉及到聚合函數(shù)做條件的情況,一定是分組后的篩選。能用分組前篩選的,就優(yōu)先考慮分組前的篩選。(考慮到性能問題)

在這里插入圖片描述 

3)案例講解

原始數(shù)據(jù)集如下:

在這里插入圖片描述

① 分組前篩選

習題一:查詢姓名中包含S字符的,每個部門的工資之和。

在這里插入圖片描述

習題二:查詢工資大于2000的,不同部門的平均工資。

在這里插入圖片描述

② 分組后篩選

習題一:查詢部門員工個數(shù)大于3的部門編號和員工個數(shù)。

在這里插入圖片描述

習題二:查詢每個部門最高工資大于3000的部門編號和最高工資。

在這里插入圖片描述

③ 分組前篩選和分組后篩選合用

習題:查詢1981年入職的,不同部門間工資的平均值大于2000的部門編號和平均值。

在這里插入圖片描述

5.分組查詢(按函數(shù)分組)

習題:按員工姓名的長度分組,查詢每一組的員工個數(shù),篩選員工個數(shù)>3的有哪些?

select length(ename) len,count(*) counts
from emp
group by len
having counts > 3;

結(jié)果如下:

在這里插入圖片描述

6.分組查詢(按多個字段分組)

習題:查詢每個部門每個工種的員工的平均工資。

在這里插入圖片描述

7.group by和order by,一對老搭檔

習題一:查詢每個部門的員工的平均工資,按照平均工資降序。

在這里插入圖片描述

習題二:查詢每個部門的員工的平均工資,按照平均工資升序。

在這里插入圖片描述

8.分組查詢的總結(jié)

1)分組函數(shù)做條件,肯定是放在having子句中。

2)能用分組前篩選的,就優(yōu)先考慮使用分組前篩選。(where篩選)

3)group by子句支持單個字段分組,多個字段分組(多個字段之間用逗號隔開沒有順序要求),還支持函數(shù)分組(用的較少)。

以上就是MySQL初學者可以告別分組聚合查詢的困擾了的詳細內(nèi)容,更多關于MySQL分組聚合查詢的資料請關注腳本之家其它相關文章!

相關文章

  • mysql installer web community 5.7.21.0.msi安裝圖文教程

    mysql installer web community 5.7.21.0.msi安裝圖文教程

    這篇文章主要為大家詳細介紹了mysql installer web community 5.7.21.0.msi,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 使用MySQL Workbench構(gòu)建ER圖的詳細教程

    使用MySQL Workbench構(gòu)建ER圖的詳細教程

    ER圖又稱實體-聯(lián)系圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型,MySQL?Workbench是一個強大的數(shù)據(jù)庫設計工具,提供了便捷的數(shù)據(jù)導入導出功能,本文介紹了使用MySQL Workbench構(gòu)建ER圖的詳細教程
    2024-06-06
  • MySQL Memory 存儲引擎淺析

    MySQL Memory 存儲引擎淺析

    需求源自項目中的MemCache需求,開始想用MemCached(官方站點:http://memcached.org/ ),但這個在Linux下面應用廣泛的開源軟件無官方支持的Windows版本
    2011-12-12
  • mysql 8.0.22 安裝配置圖文教程

    mysql 8.0.22 安裝配置圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.22 安裝配置圖文教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • mysql數(shù)據(jù)庫視圖和執(zhí)行計劃實戰(zhàn)案例

    mysql數(shù)據(jù)庫視圖和執(zhí)行計劃實戰(zhàn)案例

    這篇文章主要給大家介紹了關于mysql數(shù)據(jù)庫視圖和執(zhí)行計劃的相關資料,在使用MySQL過程中視圖和執(zhí)行計劃是一個很好的工具,文中通過圖文以及代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點

    mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點

    今天小編就為大家分享一篇關于mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • mysql 5.7.23 安裝配置方法圖文教程

    mysql 5.7.23 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.23安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Oracle和MySQL的高可用方案對比分析

    Oracle和MySQL的高可用方案對比分析

    這篇文章主要介紹了Oracle和MySQL的高可用方案對比分析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • mysql出現(xiàn)Error performing load command的解決方法

    mysql出現(xiàn)Error performing load command的解決方法

    一般就是數(shù)據(jù)庫表字段類型問題,大家參考下面的方法解決下
    2008-06-06
  • Mysql如何設置表主鍵id從1開始遞增

    Mysql如何設置表主鍵id從1開始遞增

    這篇文章主要介紹了Mysql如何設置表主鍵id從1開始遞增問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論