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是各年齡段認數之和