[英]How to sum purchase value from each customer type each month?
我有兩張桌子。
顧客
客戶ID | 顧客類型 |
---|---|
1 | 學生 |
2 | 藍色的 |
訂單
order_id | 客戶ID | 購買價值 | 日期 |
---|---|---|---|
001 | 1 | 500 | 2021-06-03 |
002 | 2 | 600 | 2021-03-01 |
我想進行查詢以顯示每種客戶類型的每月總購買量,預計如下所示:
月 | 學生 | 藍色的 |
---|---|---|
3 | 0 | 600 |
6 | 500 | 0 |
我試過像這樣使用子查詢:
SELECT
month(order_date) as month,
(SELECT sum(order_value) from orders JOIN customers
ON customers.customer_id = orders.customer_id
WHERE customers.customer_type LIKE 'Business'
GROUP BY month, customers.customer_type) as personal
from orders
JOIN customers
ON customers.customer_id = orders.customer_id
但仍然失敗,我想嘗試在JOIN
中使用子查詢,但有點困惑。 你有解決這個問題的辦法嗎?
使用條件聚合:
SELECT MONTH(o.order_date) as month,
SUM(CASE WHEN c.customer_type = 'student' THEN order_value END) as student,
SUM(CASE WHEN c.customer_type = 'blue' THEN order_value END) as blue
FROM orders o JOIN
customers c
ON c.customer_id = o.customer_id
GROUP BY MONTH(o.order_date);
子查詢是不必要的。 請注意,使用month()
而不考慮年份通常會產生無效結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.