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='學(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ù)可以對單個列求和,也可以對多個列運算后求和,計算中忽略 NULL 值


SUM函數(shù)與分組 GROUP BY 使用,可以分組求和


SUM對多個列運算后求和,如果運算的列中有個字段為 NULL, 運算結(jié)果也為 NULL
( id 不為 NULL,但是 score 為 NULL ,運算的結(jié)果也為 NULL )

2.在沒有符合條件的數(shù)據(jù)時使用 SUM()函數(shù),或者當(dāng)莫一列全是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)相當(dāng)于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)文章
MySQL數(shù)學(xué)函數(shù)簡明總結(jié)
這篇文章主要介紹了MySQL數(shù)學(xué)函數(shù)簡明總結(jié),本文總結(jié)了大多數(shù)常用的MySQL數(shù)學(xué)函數(shù),并給出了使用實例,需要的朋友可以參考下2014-09-09
mysql?使用join進行多表關(guān)聯(lián)查詢的操作方法
在一些報表統(tǒng)計或數(shù)據(jù)展示時候需要提取的數(shù)據(jù)分布在多個表中,這個時候需要進行join連表操作,join將兩個或多個表當(dāng)成不同的數(shù)據(jù)集合,然后進行集合取交集運算,這篇文章主要介紹了mysql?使用join進行多表關(guān)聯(lián)查詢的操作方法,需要的朋友可以參考下2024-02-02
重裝MySQL最后一步失敗的完美解決方案(經(jīng)驗總結(jié))
使用MySQL都有過重裝的經(jīng)歷,要是重裝MySQL基本都是在最后一步通不過,究竟是什么原因呢?下面是我總結(jié)的一點經(jīng)驗,都是血的教訓(xùn)2014-06-06
使用Shell腳本進行MySql權(quán)限修改的實現(xiàn)教程
原先數(shù)據(jù)配置文件中有bind-address=127.0.0.1,注釋掉此配置后,原數(shù)據(jù)庫中默認帶%root的權(quán)限,現(xiàn)在需要通過腳本實現(xiàn)白名單列表中的ip添加權(quán)限允許訪問數(shù)據(jù)庫,本文給大家介紹了使用Shell腳本進行MySql權(quán)限修改的實現(xiàn)教程,需要的朋友可以參考下2024-03-03
探索MySQL?8中utf8mb4釋放多語言數(shù)據(jù)的強大潛力
這篇文章主要為大家介紹了探索MySQL?8中utf8mb4釋放多語言數(shù)據(jù)的強大潛力,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

