Mysql中SUM()函數(shù)使用方法
一、前期準備工作
本文基于自己的理解,總結(jié)了 SUM() 函數(shù)的用法。為了更加直觀,我先新建一個 student_table 表并往表里面插入一些數(shù)據(jù),方便后面的 sql 舉例。如有錯誤,還請指出。
新建表如下:
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 '身份證號', `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 '期末總分數(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='學生表';
插入的數(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ù)可以對單個列求和,也可以對多個列運算后求和,計算中忽略 NULL 值
SUM函數(shù)與分組 GROUP BY 使用,可以分組求和
SUM對多個列運算后求和,如果運算的列中有個字段為 NULL, 運算結(jié)果也為 NULL
( id 不為 NULL,但是 score 為 NULL ,運算的結(jié)果也為 NULL )
2.在沒有符合條件的數(shù)據(jù)時使用 SUM()函數(shù),或者當莫一列全是NULL時,則 SUM()函數(shù)返回 NULL,而不是 0
可以通過結(jié)合使用 IFNULL 或 COALESCE 函數(shù)來解決結(jié)果為 NULL 的情況
這兩個函數(shù)的區(qū)別:
- IFNULL 函數(shù)接受兩個參數(shù),如果第一個參數(shù)不是 null 會直接返回,如果第一個參數(shù)是 null ,則返回第二個參數(shù)
- COALESCE 函數(shù)可以接受兩個或多個參數(shù),并返回第一個非 null 的參數(shù),如果所有參數(shù)都為 null,則會返回 null
- 參考:Mysql使用sum()函數(shù)返回null的問題詳解
2.SUM()可以求總記錄數(shù)
1.SUM(1)相當于COUNT(1)
2.求符合條件的記錄數(shù)
3.使用如果表達式IF(expr, v1, v2), expr 成立,返回結(jié)果 v1;否則,返回結(jié)果 v2
true 等同于 1
下面的語句是分數(shù)大于 5 的返回 2
3.使用條件表達式
CASE WHEN 條件1 THEN 選項1 WHEN 條件2 THEN 選項2 …… ELSE 默認值 END
總結(jié)
到此這篇關(guān)于Mysql中SUM()函數(shù)使用方法的文章就介紹到這了,更多相關(guān)Mysql SUM()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows8下mysql 5.6.15 安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Windows8下mysql 5.6.15 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09MySQL運行報錯:“Expression?#1?of?SELECT?list?is?not?in?GR
這篇文章主要給大家介紹了關(guān)于MySQL運行報錯:“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”的解決方法,文中將解決方法介紹的非常詳細,需要的朋友可以參考下2022-06-06mysql數(shù)據(jù)遷移之data目錄復(fù)制方法
這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)遷移之data目錄復(fù)制方法的相關(guān)資料,MySQL的data文件是存儲數(shù)據(jù)庫的核心文件,它包含了所有的表、索引、視圖和其它相關(guān)的數(shù)據(jù),通過復(fù)制這些文件,我們可以將一個MySQL數(shù)據(jù)庫遷移到另一個地方,需要的朋友可以參考下2023-08-08