使用SQL語句統計資料時sum和count函式中使用if判斷條件的講解
阿新 • • 發佈:2020-01-09
首先舉個栗子(不想看的話直接下面看總結):
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))
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結