繁体   English   中英

如何计算每个月每种客户类型的购买价值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM