久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明

瀏覽:2日期:2023-09-05 20:32:01
目錄mysql之count()和sum()用法及區(qū)別mysql中sum()和count()函數(shù)按條件統(tǒng)計(jì)數(shù)據(jù)sum()函數(shù)count()函數(shù)SQL的執(zhí)行順序總結(jié)mysql之count()和sum()用法及區(qū)別

1、mysql 數(shù)據(jù)庫中 count() 函數(shù)是統(tǒng)計(jì)查詢結(jié)果中的行數(shù),例如我們有下表 user_auth :

使用 count() 函數(shù)來查詢結(jié)果個(gè)數(shù),使用如下查詢:

mysql > select count(*) from user_auth ;? ?

注意的是,count 會(huì)忽略掉 NULL 的結(jié)果, 所以 count(字段名) 這樣使用的話,如果字段中包含為null的結(jié)果,將導(dǎo)致查詢結(jié)果不準(zhǔn)確,我們將表中數(shù)據(jù)更改如下:

此時(shí)查詢:

mysql > select count(user_id) from user_auth;

結(jié)果如下:

2、mysql 中 sum() 函數(shù)用于計(jì)算某一字段中所有行的數(shù)值之和( sum 求和時(shí)會(huì)對 null 進(jìn)行過濾,不計(jì)算),例如如下查詢:

mysql > select sum(user_id) from user_auth;

結(jié)果如下:

另外也能使用 sum(條件) 進(jìn)行對符合條件的結(jié)果行數(shù)進(jìn)行求和,如下查詢:

mysql > select sum(user_id is null),sum(aid = 1) from user_auth;

結(jié)果如下:

需要注意的是,如果在沒有返回行中使用 sum() 函數(shù),sum 函數(shù)的返回值為 null,不是 0,例:

mysql > select sum(user_id) from user_auth where id not in (2,4,6);

結(jié)果如下:

此時(shí)使用JDBC或者一些第三方框架進(jìn)行映射時(shí)就會(huì)報(bào)錯(cuò),

解決辦法是:

使用IFNULL(sum(user_id),0) 或者 COALESCE(sum(user_id),0) 進(jìn)行結(jié)果的轉(zhuǎn)換。

mysql中sum()和count()函數(shù)按條件統(tǒng)計(jì)數(shù)據(jù)sum()函數(shù)

一般求和

select sum(money) from user group by id;

按條件求和 (對所有金額大于100的數(shù)據(jù)進(jìn)行求和)

select sum(if(money>=100,money,0)) from user group by id;

聚合函數(shù)中如果想?yún)R總某一類數(shù)據(jù)的數(shù)量,可以在括號中增加條件:

sum(case when 字段>0 then 1 else 0 end) as 字段count()函數(shù)

要注意的是:count(case when 字段>0 then 1 else 0 end) as 字段,這樣寫的話

count函數(shù)不管記錄內(nèi)容是0或1,它的作用只是計(jì)算記錄數(shù),計(jì)算出來的是0和1的全部次數(shù),如果你要計(jì)算次數(shù),用sum(case when 字段>0 then 1 else 0 end) as 字段

或者你用 count(case when 字段>0 then 1 else null end) as 字段 這種寫法

基本原理是 使用了數(shù)據(jù)庫count(null)時(shí)返回的是0 ,count(非null)返回是1

SQL的執(zhí)行順序第一步:執(zhí)行FROM第二步:WHERE條件過濾第三步:GROUP BY分組第四步:執(zhí)行SELECT投影列第五步:HAVING條件過濾第六步:執(zhí)行ORDER BY 排序總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: MySQL 數(shù)據(jù)庫
主站蜘蛛池模板: 海安县| 炎陵县| 阿拉善盟| 全州县| 湘潭县| 密山市| 团风县| 阿克苏市| 遵义县| 凌源市| 九寨沟县| 外汇| 礼泉县| 漳州市| 肇州县| 华容县| 渝中区| 汉沽区| 克拉玛依市| 南皮县| 噶尔县| 宣化县| 富顺县| 辽宁省| 中卫市| 东兴市| 静乐县| 桐庐县| 晋江市| 章丘市| 舞阳县| 保靖县| 卫辉市| 富川| 鲜城| 榆中县| 年辖:市辖区| 万安县| 周口市| 阿荣旗| 读书|