大家好,我在解决 SQL 练习时遇到问题: 我似乎无法理解如何编写一个查询来根据购买数据库回答标题中的问题。 我尝试每月选择不同的值,但同一客户可以在不同的月份进行购买,因此它们最终会重复。
SELECT
EXTRACT(YEAR FROM o.order_date) AS year,
EXTRACT(MONTH FROM o.order_date) AS month,
COUNT(DISTINCT o.customerID) AS total_customers
FROM `store1.Orders` AS o
JOIN `store1.Customers` AS c
ON o.customerID = c.customerID
GROUP BY year, month
ORDER BY month ASC
store1.Orders 的列:
- 订单ID
- 订单日期
- 购买状态
- 收入
- 客户ID
store1.Customers 列:
- 客户ID
- 姓名
- 电子邮件
有人可以帮助我吗?
最佳答案
我会从用户角度而不是订单角度来解决问题。
SELECT
COUNT(*) as new_customers,
EXTRACT(YEAR FROM custs.first_order_date) AS year,
EXTRACT(MONTH FROM custs.first_order_date) AS month
FROM
(SELECT
MIN(o.order_date) as first_order_date,
o.customerID
FROM store1.Orders o
GROUP BY c.customer_ID) custs
GROUP BY year, month
ORDER BY month ASC
查询中可能存在拼写错误或语法错误,我没有测试。但你会接近的。
关于sql - 每月有多少顾客首次在 STORE 1 进行购买?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72174336/