1. 程式人生 > >【MySQL】常見的業務處理-進行分割槽間的統計

【MySQL】常見的業務處理-進行分割槽間的統計

場景

在日常工作中我們常常有這樣的需求:統計所有資料區間的資訊。 案例:統計某個商城系統中所有登入使用者消費金額大於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;
統計結果如下: