首先舉個(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)鏈接
您可能感興趣的文章:- Oracle中sql語(yǔ)句(+)符號(hào)代表連接的使用講解
- Mysql Update批量更新的幾種方式
- 抽取oracle數(shù)據(jù)到mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)過(guò)程
- 使用Python將Mysql的查詢數(shù)據(jù)導(dǎo)出到文件的方法
- sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解
- MySQL常用SQL語(yǔ)句總結(jié)包含復(fù)雜SQL查詢
- 一個(gè)案例徹底弄懂如何正確使用mysql inndb聯(lián)合索引
- Mysql主從復(fù)制注意事項(xiàng)的講解
- MySQL中無(wú)過(guò)濾條件的count詳解
- MySQL中int最大值深入講解