Sql根據(jù)不同條件統(tǒng)計(jì)總數(shù)的方法(count和sum)
前言
經(jīng)常會(huì)遇到根據(jù)不同的條件統(tǒng)計(jì)總數(shù)的問(wèn)題,一般有兩種寫(xiě)法:count和sum都可以
數(shù)據(jù)準(zhǔn)備:
方法一 :Count
代碼:
SELECT COUNT( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE NULL END ) AS cnt0, COUNT( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE NULL END ) AS cnt1 FROM USER;
結(jié)果:
方法二:sum
代碼:
SELECT SUM( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE 0 END ) AS cnt0, SUM( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE 0 END ) AS cnt1 FROM USER;
結(jié)果:
當(dāng)然也可以和count代碼一樣ELSE后面也寫(xiě)為NULL
SELECT SUM( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE NULL END ) AS cnt0, SUM( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE NULL END ) AS cnt1 FROM USER;
后記
其實(shí)原理很簡(jiǎn)單,count統(tǒng)計(jì)的時(shí)候有滿足條件的就加1,沒(méi)有滿足的變?yōu)镹ULL,我們知道聚合函數(shù)統(tǒng)計(jì)的時(shí)候是忽略null值的;而sum原理和coun相似,不過(guò)ELSE后面可以是0或者NULL。
到此這篇關(guān)于Sql根據(jù)不同條件統(tǒng)計(jì)總數(shù)的文章就介紹到這了,更多相關(guān)sql統(tǒng)計(jì)總數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql count(*)分組之后IFNULL無(wú)效問(wèn)題
- SQL中count(1)、count(*)?與?count(列名)的區(qū)別詳細(xì)解釋
- MySQL數(shù)據(jù)庫(kù)統(tǒng)計(jì)函數(shù)COUNT的使用及說(shuō)明
- mysql?count()函數(shù)不計(jì)算null和空值問(wèn)題
- mysql數(shù)據(jù)庫(kù)之count()函數(shù)和sum()函數(shù)用法及區(qū)別說(shuō)明
- mysql一條sql查出多個(gè)條件不同的sum或count問(wèn)題
- MySQL中的count(*)?和?count(1)?區(qū)別性能對(duì)比分析
- SQL 中 COUNT 的用法示例詳解
相關(guān)文章
SQL?Server數(shù)據(jù)庫(kù)變成單個(gè)用戶如何解決
本文主要介紹了SQL?Server數(shù)據(jù)庫(kù)變成單個(gè)用戶如何解決,文中圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼
在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼...2007-08-08sqlserver 函數(shù)、存儲(chǔ)過(guò)程、游標(biāo)與事務(wù)模板
SQL 函數(shù)、存儲(chǔ)過(guò)程、游標(biāo)與事務(wù)模板,學(xué)習(xí)sqlserver的朋友很多情況下都需要用得到。2010-08-08SQL Server查詢數(shù)據(jù)庫(kù)中表使用空間信息實(shí)現(xiàn)腳本
這篇文章主要介紹了SQL Server查詢數(shù)據(jù)庫(kù)中表使用空間信息實(shí)現(xiàn)腳本,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-07-07SQL SERVER先判斷視圖是否存在然后再創(chuàng)建視圖的語(yǔ)句
SQL SERVER中先判斷視圖是否存在,使用IF NOT EXISTS,然后再創(chuàng)建視圖,使用create view,整個(gè)過(guò)程如下2014-08-08小系統(tǒng)單據(jù)自動(dòng)生成存儲(chǔ)過(guò)程
此處判斷有兩種方法:一種是根據(jù)傳入6位日期判斷;另一種根據(jù)單據(jù)創(chuàng)建日期字段(前提:表有創(chuàng)建時(shí)間字段)2010-07-07