1. 程式人生 > 資料庫 >使用SQL語句統計資料時sum和count函式中使用if判斷條件的講解

使用SQL語句統計資料時sum和count函式中使用if判斷條件的講解

首先舉個栗子(不想看的話直接下面看總結):

order_type:訂單型別
open_id:使用者唯一標識
SELECT
    date(create_time) AS '當天日期',sum(real_price) AS '當天總收入',sum函式中使用if判斷條件:{
sum(
IF (order_type = 0,real_price,0)
) AS '當天支付收入',sum(
IF (order_type = 1,0)
) AS '當天打賞收入',}
    count(DISTINCT open_id) AS '付費總人數',count函式中使用if判斷條件:{
count(
DISTINCT open_id,IF (order_type = 0,TRUE,NULL)
) AS '支付人數',count(
DISTINCT open_id,IF (order_type = 1,NULL)
) AS '打賞人數',}
    count(id) AS '付費訂單總數',count函式中使用if判斷條件:{
count(
DISTINCT id,NULL)
) AS '支付訂單數',count(
DISTINCT id,NULL)
) AS '打賞訂單數'
}
FROM
orders
WHERE
'real_price' != 1
AND 'status' != 0
GROUP BY DATE(create_time)

查詢結果:為了區分打賞訂單和支付訂單的資料統計,使資料更加清晰。

小結:

sum函式中使用if判斷條件格式為:sum(if(條件,列值,0))

註解:sum是求和函式,條件為真時,執行列值(欄位名)求和也就是累加,條件為假時為0求和(當然還是0)

1.單條件判斷格式,sum(if(條件欄位名=值,需要計算sum的欄位名,0))

2.多條件判斷格式,sum(if(條件欄位名>值 AND 條件欄位名>值 AND 條件欄位名=值,1,0))

註解:多條件判斷格式整體含義為,計算滿足條件的資料總數,如果滿足條件,那麼資料總數加1,所以1的含義為累加1

3.常見case when格式,sum(case when 條件欄位名 in (範圍較小值,範圍較大值) then [需要計算sum的欄位名] else 0 end)

count函式中使用if判斷條件格式為:

1.統計總數,count(if(條件欄位名=值,true,null))

2.統計總數去重複值,count(DISTINCT 需要計算count的欄位名,if(條件欄位名=值,null))

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結