使用SQL語(yǔ)句統(tǒng)計(jì)數(shù)據(jù)時(shí)sum和count函數(shù)中使用if判斷條件的講解
首先舉個(gè)栗子(不想看的話直接下面看總結(jié)):
order_type:訂單類型 open_id:用戶唯一標(biāo)識(shí) SELECT date(create_time) AS '當(dāng)天日期', sum(real_price) AS '當(dāng)天總收入', sum函數(shù)中使用if判斷條件:{ sum( IF (order_type = 0, real_price, 0) ) AS '當(dāng)天支付收入', sum( IF (order_type = 1, real_price, 0) ) AS '當(dāng)天打賞收入', } count(DISTINCT open_id) AS '付費(fèi)總?cè)藬?shù)', count函數(shù)中使用if判斷條件:{ count( DISTINCT open_id, IF (order_type = 0, TRUE, NULL) ) AS '支付人數(shù)', count( DISTINCT open_id, IF (order_type = 1, TRUE, NULL) ) AS '打賞人數(shù)', } count(id) AS '付費(fèi)訂單總數(shù)', count函數(shù)中使用if判斷條件:{ count( DISTINCT id, IF (order_type = 0, TRUE, NULL) ) AS '支付訂單數(shù)', count( DISTINCT id, IF (order_type = 1, TRUE, NULL) ) AS '打賞訂單數(shù)' } FROM orders WHERE 'real_price' != 1 AND 'status' != 0 GROUP BY DATE(create_time)
查詢結(jié)果:為了區(qū)分打賞訂單和支付訂單的數(shù)據(jù)統(tǒng)計(jì),使數(shù)據(jù)更加清晰。
小結(jié):
sum函數(shù)中使用if判斷條件格式為:sum(if(條件,列值,0))
注解:sum是求和函數(shù),條件為真時(shí),執(zhí)行列值(字段名)求和也就是累加,條件為假時(shí)為0求和(當(dāng)然還是0)
1.單條件判斷格式,sum(if(條件字段名=值,需要計(jì)算sum的字段名,0))
2.多條件判斷格式,sum(if(條件字段名>值 AND 條件字段名>值 AND 條件字段名=值,1,0))
注解:多條件判斷格式整體含義為,計(jì)算滿足條件的數(shù)據(jù)總數(shù),如果滿足條件,那么數(shù)據(jù)總數(shù)加1,所以1的含義為累加1
3.常見(jiàn)case when格式,sum(case when 條件字段名 in (范圍較小值,范圍較大值) then [需要計(jì)算sum的字段名] else 0 end)
count函數(shù)中使用if判斷條件格式為:
1.統(tǒng)計(jì)總數(shù),count(if(條件字段名=值,true,null))
2.統(tǒng)計(jì)總數(shù)去重復(fù)值,count(DISTINCT 需要計(jì)算count的字段名,if(條件字段名=值,true,null))
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
MySQL server has gone away 問(wèn)題的解決方法
MySQL server has gone away 問(wèn)題解決方法,需要的朋友可以參考下。2010-06-06SELECT… FOR UPDATE 排他鎖的實(shí)現(xiàn)
本文主要介紹了SELECT… FOR UPDATE 排他鎖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Mysql全文搜索對(duì)模糊查詢的性能提升測(cè)試方式
這篇文章主要介紹了Mysql全文搜索對(duì)模糊查詢的性能提升測(cè)試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08linux下指定mysql數(shù)據(jù)庫(kù)服務(wù)器主從同步的配置實(shí)例
linux下指定數(shù)據(jù)庫(kù)服務(wù)器主從同步的配置實(shí)例,有需要的朋友可以參考下2013-01-01MySQL中Select查詢語(yǔ)句的高級(jí)用法分享
MySQL是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),支持多種操作語(yǔ)言,其中最基礎(chǔ)、最常用的命令之一就是SELECT語(yǔ)句,所以本文就來(lái)和大家聊聊Select查詢語(yǔ)句的幾個(gè)高級(jí)用法吧2023-05-05MySQL中的alter table命令的基本使用方法及提速優(yōu)化
這篇文章主要介紹了MySQL中的alter table命令的基本使用方法及提速優(yōu)化的方法,包括ALTER COLUMN的使用等等,需要的朋友可以參考下2015-11-11Access數(shù)據(jù)庫(kù)的存儲(chǔ)上限
Access數(shù)據(jù)庫(kù)的存儲(chǔ)上限...2006-09-09MySQL按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)
在本篇MYSQL的內(nèi)容里,我們給大家整理了關(guān)于按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-02-02