sql - 每月有多少顾客首次在 STORE 1 进行购买?

标签 sql

大家好,我在解决 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/

相关文章:

MySQL - 获取左表元素,尽管 'where' 条件不兼容

空列上的android sqlite索引

mysql - 为什么这个 MySQL 语句在子查询中不起作用?

mysql - 如何获得当天的随机行?

mysql - 在mysql中使用like from string搜索数字

mysql - 根据白名单表过滤未过滤的表

python - 在 SQLalchemy 中过滤左连接

sql - cte 的对象名称无效

mysql - 将 JSON 存储在数据库中与每个键都有一个新列

java - 以下查询导致 MySQLSyntaxErrorException - 我的查询有什么问题?