嘿,伙计们,我在解决SQL练习时遇到了问题:

SELECT 
 EXTRACT(YEAR FROM o.订单日期) AS year,
 EXTRACT(MONTH FROM o.订单日期) AS month,
 COUNT(DISTINCT o.客户ID) AS total_customers
FROM `store1.Orders` AS o
JOIN `store1.Customers` AS c
ON o.客户ID = c.客户ID
GROUP BY year, month
ORDER BY month ASC

store1的列.订单:

  • 订单号
  • 订单日期
  • 购买状态
  • 收入
  • 客户ID

store1的列.客户:

  • 客户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相关问答推荐

PostgreSQL:如果发现多行具有相似列值,则跳过 Select 行

查询多个表并返回合并在联合列上的所有表中的所有行

BigQuery`喜欢ANY‘和`不喜欢ANY’

解析SQL Server中的嵌套JSON

正在编写查询.我需要将订阅的时间段分为第一个订阅中包含的另一个订阅之前和之后的时间段

从类似JSON的字符串列创建新列

如何用HeidiSQL在Firebird中设置超时?

需要使用SQLite查询进行一些奇怪的时间转换

如何使用聚合连接两个表

配置单元查询失败:无法识别';附近的输入;LEFT'';(select子句中的';';col'

group by 并根据同表中其他列的某些条件获取 group by 中的某一列值

用替代方案替换 SQL Cursor 以提高性能

统计重复记录的总数

在 PostgreSQL 中,如何让多个判断约束引用相同的值数组?

在 SQL Server 中查找重复项

BigQuery导航函数计算ID

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

在 MS Access 中连接相关记录

为每组填写行以进行旋转

snowfalke 会在 Select 运行时锁定表吗?