首先舉個栗子(不想看的話直接下面看總結(jié)):
order_type:訂單類型
open_id:用戶唯一標(biāo)識
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 '付費總?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 '付費訂單總數(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)計,使數(shù)據(jù)更加清晰。
小結(jié):
sum函數(shù)中使用if判斷條件格式為:sum(if(條件,列值,0))
注解:sum是求和函數(shù),條件為真時,執(zhí)行列值(字段名)求和也就是累加,條件為假時為0求和(當(dāng)然還是0)
1.單條件判斷格式,sum(if(條件字段名=值,需要計算sum的字段名,0))
2.多條件判斷格式,sum(if(條件字段名>值 AND 條件字段名>值 AND 條件字段名=值,1,0))
注解:多條件判斷格式整體含義為,計算滿足條件的數(shù)據(jù)總數(shù),如果滿足條件,那么數(shù)據(jù)總數(shù)加1,所以1的含義為累加1
3.常見case when格式,sum(case when 條件字段名 in (范圍較小值,范圍較大值) then [需要計算sum的字段名] else 0 end)
count函數(shù)中使用if判斷條件格式為:
1.統(tǒng)計總數(shù),count(if(條件字段名=值,true,null))
2.統(tǒng)計總數(shù)去重復(fù)值,count(DISTINCT 需要計算count的字段名,if(條件字段名=值,true,null))
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- Oracle中sql語句(+)符號代表連接的使用講解
- Mysql Update批量更新的幾種方式
- 抽取oracle數(shù)據(jù)到mysql數(shù)據(jù)庫的實現(xiàn)過程
- 使用Python將Mysql的查詢數(shù)據(jù)導(dǎo)出到文件的方法
- sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實例講解
- MySQL常用SQL語句總結(jié)包含復(fù)雜SQL查詢
- 一個案例徹底弄懂如何正確使用mysql inndb聯(lián)合索引
- Mysql主從復(fù)制注意事項的講解
- MySQL中無過濾條件的count詳解
- MySQL中int最大值深入講解