Mysql中SUM()函數(shù)使用方法
一、前期準(zhǔn)備工作
本文基于自己的理解,總結(jié)了 SUM() 函數(shù)的用法。為了更加直觀,我先新建一個(gè) student_table 表并往表里面插入一些數(shù)據(jù),方便后面的 sql 舉例。如有錯(cuò)誤,還請(qǐng)指出。
新建表如下:
CREATE TABLE `student_table` ( `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主鍵', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名', `gender` int DEFAULT '0' COMMENT '性別 0:保密 1:男 2:女', `id_card` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '身份證號(hào)', `national` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '民族', `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '聯(lián)系電話', `score` decimal(10,2) DEFAULT NULL COMMENT '期末總分?jǐn)?shù)', `describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='學(xué)生表';
插入的數(shù)據(jù)如下:
insert into student_table values(1,'小明','1','111222333444555666','漢族','11122233344','8','zxcvbnm'); insert into student_table values(2,'紅紅','2','999999999444444444','漢族','99999444444','7','sfsdvsvs'); insert into student_table values(3,'張三','0','666666666888888888','苗族','66666688888','8','gsfwwsfg'); insert into student_table values(4,'李四','0','111111111444444444','苗族','11111144444','6','erefsss'); insert into student_table values(5,'王五','0','333333333777777777','苗族','33333377777','4','lkjgdgsgssftg'); insert into student_table values(6,'小綠',NULL,NULL,NULL,NULL,NULL,NULL); insert into student_table values(7,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
二、SUM()函數(shù)的用法
1.求和,返回指定列的總和
SUM 函數(shù)可以對(duì)單個(gè)列求和,也可以對(duì)多個(gè)列運(yùn)算后求和,計(jì)算中忽略 NULL 值
SUM函數(shù)與分組 GROUP BY 使用,可以分組求和
SUM對(duì)多個(gè)列運(yùn)算后求和,如果運(yùn)算的列中有個(gè)字段為 NULL, 運(yùn)算結(jié)果也為 NULL
( id 不為 NULL,但是 score 為 NULL ,運(yùn)算的結(jié)果也為 NULL )
2.在沒有符合條件的數(shù)據(jù)時(shí)使用 SUM()函數(shù),或者當(dāng)莫一列全是NULL時(shí),則 SUM()函數(shù)返回 NULL,而不是 0
可以通過結(jié)合使用 IFNULL 或 COALESCE 函數(shù)來解決結(jié)果為 NULL 的情況
這兩個(gè)函數(shù)的區(qū)別:
- IFNULL 函數(shù)接受兩個(gè)參數(shù),如果第一個(gè)參數(shù)不是 null 會(huì)直接返回,如果第一個(gè)參數(shù)是 null ,則返回第二個(gè)參數(shù)
- COALESCE 函數(shù)可以接受兩個(gè)或多個(gè)參數(shù),并返回第一個(gè)非 null 的參數(shù),如果所有參數(shù)都為 null,則會(huì)返回 null
- 參考:Mysql使用sum()函數(shù)返回null的問題詳解
2.SUM()可以求總記錄數(shù)
1.SUM(1)相當(dāng)于COUNT(1)
2.求符合條件的記錄數(shù)
3.使用如果表達(dá)式IF(expr, v1, v2), expr 成立,返回結(jié)果 v1;否則,返回結(jié)果 v2
true 等同于 1
下面的語句是分?jǐn)?shù)大于 5 的返回 2
3.使用條件表達(dá)式
CASE WHEN 條件1 THEN 選項(xiàng)1 WHEN 條件2 THEN 選項(xiàng)2 …… ELSE 默認(rèn)值 END
總結(jié)
到此這篇關(guān)于Mysql中SUM()函數(shù)使用方法的文章就介紹到這了,更多相關(guān)Mysql SUM()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL實(shí)戰(zhàn)記錄之如何快速定位慢SQL
這可能是困然很多人的一個(gè)問題,MySQL通過慢查詢?nèi)罩径ㄎ荒切﹫?zhí)行效率較低的SQL語句,下面這篇文章主要給大家介紹了關(guān)于MySQL實(shí)戰(zhàn)記錄之如何快速定位慢SQL的相關(guān)資料,需要的朋友可以參考下2022-03-03Windows8下mysql 5.6.15 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows8下mysql 5.6.15 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09詳解MySQL的數(shù)據(jù)行和行溢出機(jī)制
在前面的文章中,白日夢(mèng)曾不止一次的提及到:InnoDB從磁盤中讀取數(shù)據(jù)的最小單位是數(shù)據(jù)頁。 而你想得到的id = xxx的數(shù)據(jù),就是這個(gè)數(shù)據(jù)頁眾多行中的一行。 這篇文章我們就一起來看一下數(shù)據(jù)行設(shè)計(jì)的多么巧妙。2020-11-11MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別詳解
這篇文章主要給大家介紹了關(guān)于MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GR
這篇文章主要給大家介紹了關(guān)于MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”的解決方法,文中將解決方法介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06mysql數(shù)據(jù)遷移之data目錄復(fù)制方法
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)遷移之data目錄復(fù)制方法的相關(guān)資料,MySQL的data文件是存儲(chǔ)數(shù)據(jù)庫的核心文件,它包含了所有的表、索引、視圖和其它相關(guān)的數(shù)據(jù),通過復(fù)制這些文件,我們可以將一個(gè)MySQL數(shù)據(jù)庫遷移到另一個(gè)地方,需要的朋友可以參考下2023-08-08mysql滑動(dòng)訂單問題原理與解決方法實(shí)例分析
這篇文章主要介紹了mysql滑動(dòng)訂單問題原理與解決方法,結(jié)合實(shí)例形式分析了mysql滑動(dòng)訂單的問題的基本原理、解決方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12