首先舉個栗子(不想看的話直接下面看總結):
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, real_price, 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, TRUE, NULL) ) AS '打賞人數', } count(id) AS '付費訂單總數', count函數中使用if判斷條件:{ count( DISTINCT id, IF (order_type = 0, TRUE, NULL) ) AS '支付訂單數', count( DISTINCT id, IF (order_type = 1, TRUE, 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(條件字段名=值,true,null))
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。