Mysql 查詢統計不同型別的訂單繳費金額和筆數
阿新 • • 發佈:2021-01-14
select COALESCE(sum(case when order_state='1' then paid_amount else 0 end),0) errSumMoney, COALESCE(sum(case when order_state='2' then paid_amount else 0 end),0) sucSumMoney, count(case when order_state='2' then id else 0 end) sucCountNum from order_info where TO_DAYS(create_date) = TO_DAYS('2020-12-13')
在Mysql做統計時候經常會用SUM求和的函式,但是這個函式就是在求和的時候在沒有符合where條件的時候就會返回null值。這個null如果在程式碼裡面不處理就會報空指標異常問題。但是按照一般業務需求,沒有求和的值時候結果應該是0。那麼就需要一個給它賦值一個0就好了。Mysql提供了函式coalesce。coalesce()解釋:返回引數中的第一個非空表示式(從左向右依次類推)。
COALESCE("欄位", 0) 給欄位一個預設值