【MySQL】常見的業務處理-進行分割槽間的統計
阿新 • • 發佈:2019-02-10
場景
在日常工作中我們常常有這樣的需求:統計所有資料區間的資訊。 案例:統計某個商城系統中所有登入使用者消費金額大於1000元的,800到1000元的,以及800元以下的人數: 使用者登入表:商品訂單表:
MySQL中的函式
函式 | 作用 |
---|---|
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2... ] [ELSE rn] END | 如果expr的值等於v1,v2等,則返回對應位置的THEN後面的結果,否則返回ELSE後面的結果rn。 |
IFNULL(V1, V2) | 如果v1不為NULL返回v1,否則返回v2 |
使用MySQL中的條件判斷函式:
統計結果如下:SELECT COUNT(CASE WHEN IFNULL(total_money, 0) >=1000 THEN a.customer_id END ) AS '大於1000' ,COUNT(CASE WHEN IFNULL(total_money, 0) >=800 AND IFNULL(total_money, 0)<800 THEN a.customer_id END ) AS '800~1000' ,COUNT(CASE WHEN IFNULL(total_money, 0) <800 THEN a.customer_id END) AS '小於800' FROM customer_login AS a LEFT JOIN (SELECT customer_id, COUNT(order_money) AS total_money FROM order_master GROUP BY customer_id) AS b ON a.customer_id=b.customer_id;