sql分組查詢統計

SELECT
	COUNT(1) count,
	CASE
			WHEN age < 25 THEN
				0
			WHEN age >= 25
			AND age < 35 THEN
				1
			WHEN age >= 35
			AND age < 50 THEN
				2
			WHEN age > 50 THEN
				3
			END zu
FROM
	(
		SELECT
			YEAR (NOW()) - SUBSTR(c.card_number, 7, 4) age
		FROM
			(
				SELECT DISTINCT
					s.customer_id id
				FROM
					t_sales s
				LEFT JOIN t_product p ON s.product_id = p.id
				WHERE
					p.`status` IN (60, 70)
				AND s.`status` IN (20, 30, 40)
			) t
		LEFT JOIN t_customer c ON t.id = c.id
	) ages
GROUP BY
	zu
ORDER BY
	zu;

描述:

有時間再寫吧。執行後是這樣子,count是各年齡段認數之和

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章