国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySql】數(shù)據(jù)庫(kù)的聚合查詢

這篇具有很好參考價(jià)值的文章主要介紹了【MySql】數(shù)據(jù)庫(kù)的聚合查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

寫在最前面的話

????????哈嘍,寶子們,今天給大家?guī)淼氖荕ySql數(shù)據(jù)庫(kù)的聚合查詢。在前面CRUD章節(jié)我們學(xué)習(xí)了表達(dá)式查詢,表達(dá)式查詢是針對(duì)列和列之間進(jìn)行運(yùn)算的,那么如果想在行和行之間進(jìn)行運(yùn)算,那么就需要用到聚合查詢。聚合查詢除了包含聚合函數(shù)外(count,sum,avg,max,min),還包含group by 和 having 語(yǔ)句。接下來讓我們一起進(jìn)入學(xué)習(xí)吧,感謝大家的支持!喜歡的話可以三連哦~~~

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

目錄

一、聚合函數(shù)

1、COUNT([DISTINCT]expr)

2、SUM([DISTINCT]expr)

3、AVG([DISTINCT]expr)

4、MAX([DISTINCT]expr)

5、MIN([DISTINCT]expr)

二、GROUP BY子句

三、HAVING子句


一、聚合函數(shù)

? ? ? ??常見的統(tǒng)計(jì)總數(shù)、計(jì)算平局值等操作,可以使用聚合函數(shù)來實(shí)現(xiàn),常見的聚合函數(shù)有:

函數(shù) 說明
COUNT([DISTINCT]expr)

返回查詢到的數(shù)據(jù)的 數(shù)量

SUM([DISTINCT]expr) 返回查詢到的數(shù)據(jù)的 總和,不是數(shù)字沒有意義
AVG([DISTINCT]expr) 返回查詢到的數(shù)據(jù)的 平均值,不是數(shù)字沒有意義
MAX([DISTINCT]expr) 返回查詢到的數(shù)據(jù)的 最大值,不是數(shù)字沒有意義
MIN([DISTINCT]expr) 返回查詢到的數(shù)據(jù)的 最小值,不是數(shù)字沒有意義

插入測(cè)試表

????????為了大家更好的學(xué)習(xí)聚合函數(shù),我們?cè)趯W(xué)習(xí)前先創(chuàng)建一張測(cè)試表并插入數(shù)據(jù),下面的學(xué)習(xí)案例都通過這張表舉例子:

--創(chuàng)建考試成績(jī)表
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
-- 插入測(cè)試數(shù)據(jù)
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,'唐三藏', 67, 98, 56),
(2,'孫悟空', 87.5, 78, 77),
(3,'豬悟能', 88, 98, 90),
(4,'曹孟德', 82, 84, 67),
(5,'劉玄德', 55.5, 85, 45),
(6,'孫權(quán)', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);
1、COUNT([DISTINCT]expr)

把數(shù)據(jù)表中的數(shù)據(jù)數(shù)量進(jìn)行匯總,返回匯總的結(jié)果。

語(yǔ)法:

select count(表達(dá)式) from 表名;--表達(dá)式可為*或列名

學(xué)習(xí)案例

*:

select count(*) from exam_result;--使用*

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

列名:

select count(name) from exam_result;--使用列名

?執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

拓展知識(shí):大家會(huì)發(fā)現(xiàn)使用列名與使用*號(hào)達(dá)到的效果是一樣的,但其實(shí)如果當(dāng)前列為NULL,使用列名就不會(huì)計(jì)算進(jìn)去,而使用*號(hào)就會(huì)。

當(dāng)插入一條name為NULL的數(shù)據(jù),再次運(yùn)行結(jié)果如下圖所示:

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

?distinct:

select count(distinct name) from exam_result;--使用distinct去重

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

?2、SUM([DISTINCT]expr)

把這一列的若干行進(jìn)行求和(算術(shù)運(yùn)算),只能針對(duì)數(shù)字類型使用。

語(yǔ)法:

select sum(表達(dá)式) from 表名;--表達(dá)式為列名

?學(xué)習(xí)案例

---計(jì)算所有同學(xué)的語(yǔ)文成績(jī)

select sum(chinese) from exam_result;--如果數(shù)據(jù)中有null會(huì)被排除掉

---計(jì)算所有科目的總成績(jī)

select sum(chinese+math+english) from exam_result;--如果數(shù)據(jù)中有null會(huì)被排除掉
?3、AVG([DISTINCT]expr)

把這一列的若干行進(jìn)行平均值運(yùn)算(算術(shù)運(yùn)算),只能針對(duì)數(shù)字類型使用。

語(yǔ)法:

select avg(表達(dá)式) from 表名;--表達(dá)式為列名

?學(xué)習(xí)案例

---計(jì)算數(shù)學(xué)成績(jī)的平均值

select avg(math) from exam_result;

---計(jì)算所有科目總成績(jī)的平均值

select avg(chinese+math+english) from exam_result;
?4、MAX([DISTINCT]expr)

把這一列的若干行進(jìn)行求最大值(算術(shù)運(yùn)算),只能針對(duì)數(shù)字類型使用。

?語(yǔ)法:

select max(表達(dá)式) from 表名;--表達(dá)式為列名

學(xué)習(xí)案例

---計(jì)算英語(yǔ)成績(jī)的最大值

select max(exglish) from exam_result;

---計(jì)算所有科目總成績(jī)的最大值

select max(chinese+math+english) from exam_result;
5、MIN([DISTINCT]expr)

把這一列的若干行進(jìn)行求最小值(算術(shù)運(yùn)算),只能針對(duì)數(shù)字類型使用。

語(yǔ)法:

select min(表達(dá)式) from 表名;--表達(dá)式為列名

?學(xué)習(xí)案例

---計(jì)算數(shù)學(xué)成績(jī)的最小值

select min(math) from exam_result;

---計(jì)算所有科目總成績(jī)的最小值

select min(chinese+math+english) from exam_result;

二、GROUP BY子句

插入測(cè)試表

為了大家更好的學(xué)習(xí)group by,我們?cè)趯W(xué)習(xí)前先創(chuàng)建一張測(cè)試表并插入數(shù)據(jù),下面的學(xué)習(xí)案例都通過這張表舉例子:

---創(chuàng)建員工表
create table emp(
    id int primary key auto_increment,
    name varchar(20),
    role varchar(20),
    salary int);
---插入數(shù)據(jù)
insert into emp values(null,'張三','程序員',1688);
insert into emp values(null,'李四','程序員',1888);
insert into emp values(null,'王五','程序員',1988);
insert into emp values(null,'趙六','產(chǎn)品經(jīng)理',168);
insert into emp values(null,'田七','產(chǎn)品經(jīng)理',188);
insert into emp values(null,'周八','老板',8888);

?group by是針對(duì)指定的列進(jìn)行分組,把這一列中值相同的行分到一組中再分別使用聚合函數(shù)。

語(yǔ)法:

select 列名,聚合函數(shù) from 表名 group by 列名;

?學(xué)習(xí)案例

---計(jì)算不同職務(wù)的平均工資

select role,avg(salary) from emp group by role;--先分組,再算平均值

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

拓展知識(shí):如果只分組不使用聚合函數(shù)可能無法得到準(zhǔn)確數(shù)據(jù),會(huì)得到每組的第一條記錄(如下圖所示)。

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

三、HAVING子句

group by 子句進(jìn)行分組以后,需要對(duì)分組結(jié)果再進(jìn)行條件過濾時(shí),不能使用 where語(yǔ)句,而需要用having。

語(yǔ)法:

select 列名,聚合函數(shù) from 表名 group by 列名;

?學(xué)習(xí)案例:

使用group by的時(shí)候還可以搭配其它條件,但是需要區(qū)分清楚該條件是在分組前的條件還是分組后的條件。

?---查詢每個(gè)崗位的平均工資,但是排除張三(分組之前)

select role,avg(salary) from emp where name!='張三' group by role;
---先進(jìn)行where篩選,再根據(jù)role分組,最后使用avg算平均

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

---查詢每個(gè)崗位的平均工資,但排除平均工資超過2k的結(jié)果(分組之后)

select role,avg(salary) from emp group by role having avg(salary)<2000;

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql

拓展知識(shí):在group by中可以一條sql語(yǔ)句完成上述兩者的條件篩選。

---查詢每個(gè)崗位的平均工資,但是排除張三并保留平均值<2k的結(jié)果

select role,avg(salary) 
from emp 
where name!='張三' 
group by role 
having avg(salary)<2000;

執(zhí)行上述SQL語(yǔ)句后,運(yùn)行結(jié)果如下圖所示:?

【MySql】數(shù)據(jù)庫(kù)的聚合查詢,MySql,數(shù)據(jù)庫(kù),Sql語(yǔ)言,數(shù)據(jù)庫(kù),mysql,sql


????????希望各位讀者閱讀后都能有所收獲,如果喜歡本篇博客的可以點(diǎn)贊+關(guān)注+收藏?。?!同時(shí)也歡迎各位大神如果在閱讀過程中發(fā)現(xiàn)文章有錯(cuò)誤也可私信指正錯(cuò)誤,我們下一篇博客再見~~~?文章來源地址http://www.zghlxwxcb.cn/news/detail-703912.html

到了這里,關(guān)于【MySql】數(shù)據(jù)庫(kù)的聚合查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)的約束以及數(shù)據(jù)的聚合、聯(lián)合查詢

    MySQL數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)的約束以及數(shù)據(jù)的聚合、聯(lián)合查詢

    目錄 一.關(guān)系模型的簡(jiǎn)要概述 二.數(shù)據(jù)庫(kù)的約束? 2.1約束類型 ? ? ? ??2.2NULL約束 2.3?UNIQUE:唯一約束 2.4 默認(rèn)約束 2.5 PRIMARY KEY:主鍵約束 2.6 FOREIGN KEY:外鍵約束 2.7 CHECK約束 三.高效率查詢 3.1高效率查詢的分類 3.2聚合查詢 3.2.1聚合函數(shù) 3.2.2 GROUP BY子句 3.2.3HAVING 3.3.聯(lián)合查詢

    2024年02月10日
    瀏覽(50)
  • 【MySQL探索之旅】數(shù)據(jù)庫(kù)設(shè)計(jì)以及聚合查詢

    【MySQL探索之旅】數(shù)據(jù)庫(kù)設(shè)計(jì)以及聚合查詢

    ??博客主頁(yè):愛敲代碼的小楊. ?專欄:《Java SE語(yǔ)法》 | 《數(shù)據(jù)結(jié)構(gòu)與算法》 | 《C生萬物》 |《MySQL探索之旅》 |《Web世界探險(xiǎn)家》 ??感謝大家點(diǎn)贊????收藏?評(píng)論???,您的三連就是我持續(xù)更新的動(dòng)力?? ??小楊水平有限,歡迎各位大佬指點(diǎn),相互學(xué)習(xí)進(jìn)步! 數(shù)據(jù)庫(kù)

    2024年04月09日
    瀏覽(22)
  • 【JaveWeb教程】(20) MySQL數(shù)據(jù)庫(kù)開發(fā)之 基本查詢、條件查詢、聚合函數(shù)、分組查詢、排序查詢、分頁(yè)查詢 詳細(xì)代碼示例講解

    【JaveWeb教程】(20) MySQL數(shù)據(jù)庫(kù)開發(fā)之 基本查詢、條件查詢、聚合函數(shù)、分組查詢、排序查詢、分頁(yè)查詢 詳細(xì)代碼示例講解

    在上次學(xué)習(xí)的內(nèi)容中,我們講解了: 使用DDL語(yǔ)句來操作數(shù)據(jù)庫(kù)以及表結(jié)構(gòu)(數(shù)據(jù)庫(kù)設(shè)計(jì)) 使用DML語(yǔ)句來完成數(shù)據(jù)庫(kù)中數(shù)據(jù)的增、刪、改操作(數(shù)據(jù)庫(kù)操作) 我們今天還是繼續(xù)學(xué)習(xí)數(shù)據(jù)庫(kù)操作方面的內(nèi)容:查詢(DQL語(yǔ)句)。 查詢操作我們分為兩部分學(xué)習(xí): DQL語(yǔ)句-單表操作

    2024年02月02日
    瀏覽(46)
  • 【MySQL】MySQL PHP 語(yǔ)法,PHP MySQL 簡(jiǎn)介,查詢,下載 MySQL 數(shù)據(jù)庫(kù), SQL 教程

    【MySQL】MySQL PHP 語(yǔ)法,PHP MySQL 簡(jiǎn)介,查詢,下載 MySQL 數(shù)據(jù)庫(kù), SQL 教程

    作者簡(jiǎn)介: 辭七七,目前大一,正在學(xué)習(xí)C/C++,Java,Python等 作者主頁(yè): 七七的個(gè)人主頁(yè) 文章收錄專欄: 七七的閑談 歡迎大家點(diǎn)贊 ?? 收藏 ? 加關(guān)注哦!???? MySQL 可應(yīng)用于多種語(yǔ)言,包括 PERL, C, C++, JAVA 和 PHP,在這些語(yǔ)言中,MySQL 在 PHP 的 web 開發(fā)中是應(yīng)用最廣泛。 我們

    2024年02月11日
    瀏覽(28)
  • MySQl數(shù)據(jù)庫(kù)第八課-------SQL命令查詢-------主要命脈

    MySQl數(shù)據(jù)庫(kù)第八課-------SQL命令查詢-------主要命脈

    ?歡迎小可愛們前來借鑒我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 查詢數(shù)據(jù) ????????條件 ????????邏輯運(yùn)算符 ????????模糊查詢 ????????范圍查詢 in ????????判斷空 UNION ?排序 聚合 分組:gro

    2024年02月16日
    瀏覽(57)
  • 玩轉(zhuǎn)MySQL數(shù)據(jù)庫(kù)之SQL優(yōu)化之慢查詢

    本系列為:MySQL數(shù)據(jù)庫(kù)詳解,為千鋒資深教學(xué)老師獨(dú)家創(chuàng)作,致力于為大家講解清晰MySQL數(shù)據(jù)庫(kù)相關(guān)知識(shí)點(diǎn),含有豐富的代碼案例及講解。如果感覺對(duì)大家有幫助的話,可以【關(guān)注】持續(xù)追更~ 文末有本文重點(diǎn)總結(jié),技術(shù)類問題,也歡迎大家和我們溝通交流! 從今天開始本系列

    2024年02月06日
    瀏覽(98)
  • 【MySQL】數(shù)據(jù)庫(kù)的查詢語(yǔ)言DQL

    【MySQL】數(shù)據(jù)庫(kù)的查詢語(yǔ)言DQL

    目錄 前言: 一.基本查詢 1.1查詢多個(gè)字段 1.2設(shè)置別名 1.3去除字段中重復(fù)的值 二.條件查詢 2.1條件的種類 2.1.1比較運(yùn)算符 2.1.2邏輯運(yùn)算符 三.結(jié)尾 ? 在前面講完了如何增刪改數(shù)據(jù)表中的記錄后,那么如何使用這些數(shù)據(jù)就成了另一個(gè)重點(diǎn)。 ? 當(dāng)我們?yōu)g覽網(wǎng)站的時(shí)候,商品的各種

    2024年02月08日
    瀏覽(25)
  • Python MySQL 數(shù)據(jù)庫(kù)查詢:選擇數(shù)據(jù)、使用篩選條件、防止 SQL 注入

    Python MySQL 數(shù)據(jù)庫(kù)查詢:選擇數(shù)據(jù)、使用篩選條件、防止 SQL 注入

    要從MySQL中的表格中選擇數(shù)據(jù),請(qǐng)使用\\\"SELECT\\\"語(yǔ)句: 示例選擇\\\"customers\\\"表格中的所有記錄,并顯示結(jié)果: 注意 :我們使用 fetchall() 方法,該方法從上次執(zhí)行的語(yǔ)句中獲取所有行。 要僅選擇表格中的某些列,請(qǐng)使用\\\"SELECT\\\"語(yǔ)句,后跟列名: 示例僅選擇name和address列: 如果您只對(duì)

    2024年02月05日
    瀏覽(115)
  • 數(shù)據(jù)庫(kù) SQL高級(jí)查詢語(yǔ)句:聚合查詢,多表查詢,連接查詢

    數(shù)據(jù)庫(kù) SQL高級(jí)查詢語(yǔ)句:聚合查詢,多表查詢,連接查詢

    創(chuàng)建Students和Courses表 直接查詢 設(shè)置別名查詢 設(shè)置條件查詢 使用COUNT(*) 和 COUNT(StudentID)是一樣的效果,因?yàn)镾tudentID是主鍵,每行記錄的主鍵都不同。另外我們?cè)诰酆喜樵冎羞€是能使用WHERE子句的,比如我們要 查找年齡大于20歲的學(xué)生數(shù)量 ,可使用以下SQL語(yǔ)句: 函數(shù) 說明 SUM

    2024年02月09日
    瀏覽(104)
  • MySQL數(shù)據(jù)庫(kù)基礎(chǔ)(十):DQL數(shù)據(jù)查詢語(yǔ)言

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)(十):DQL數(shù)據(jù)查詢語(yǔ)言

    文章目錄 DQL數(shù)據(jù)查詢語(yǔ)言 一、數(shù)據(jù)集準(zhǔn)備 二、select查詢 三、簡(jiǎn)單查詢 四、條件查詢 1、比較查詢 2、范圍查詢 3、邏輯查詢 4、模糊查詢 5、非空查詢 五、排序查詢 六、聚合查詢 七、分組查詢與having子句 1、分組查詢介紹 2、group by的使用 3、group by + 聚合函數(shù)的使用 4、gro

    2024年02月21日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包