You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询问题:仅通过5/18用例,需修正用户2019年买家订单统计

SQL查询修正:获取用户2019年订单数

原查询的问题

原SQL仅能通过18个测试用例中的5个,核心问题是结果缺失了2019年无订单的用户:

  • 原查询以Orders表为基础构建CTE,仅包含有过订单的买家ID
  • 左连Users表后,无法覆盖从未下单或2019年无订单的用户,导致这类用户的记录完全缺失,不符合需求中“每个用户”的要求

正确的SQL查询

SELECT 
    u.user_id AS buyer_id,
    u.join_date,
    SUM(CASE WHEN YEAR(o.order_date) = 2019 THEN 1 ELSE 0 END) AS orders_in_2019
FROM Users u
LEFT JOIN Orders o ON u.user_id = o.buyer_id
GROUP BY u.user_id, u.join_date

也可以用COUNT实现等价逻辑:

SELECT 
    u.user_id AS buyer_id,
    u.join_date,
    COUNT(CASE WHEN YEAR(o.order_date) = 2019 THEN 1 END) AS orders_in_2019
FROM Users u
LEFT JOIN Orders o ON u.user_id = o.buyer_id
GROUP BY u.user_id, u.join_date

修正逻辑说明

  1. 以Users表为主表:确保所有用户都被纳入结果,哪怕没有任何订单
  2. 左连Orders表:关联用户的订单记录,无订单的用户对应字段为NULL
  3. 条件统计:
    • SUM(CASE...):符合2019年的订单记1,否则记0,求和得到订单数;无订单时总和为0
    • COUNT(CASE...):仅统计符合条件的非NULL值,无符合条件订单时返回0(CASE不满足时返回NULL,COUNT不统计NULL)

测试数据与预期输出

Users表结构及数据

+---------+------------+----------------+
| user_id | join_date  | favorite_brand |
+---------+------------+----------------+
| 1       | 2018-01-01 | Lenovo         |
| 2       | 2018-02-09 | Samsung        |
| 3       | 2018-01-19 | LG             |
| 4       | 2018-05-21 | HP             |
+---------+------------+----------------+

Orders表结构及数据

+----------+------------+---------+----------+-----------+
| order_id | order_date | item_id | buyer_id | seller_id |
+----------+------------+---------+----------+-----------+
| 1        | 2019-08-01 | 4       | 1        | 2         |
| 2        | 2018-08-02 | 2       | 1        | 3         |
| 3        | 2019-08-03 | 3       | 2        | 3         |
| 4        | 2018-08-04 | 1       | 4        | 2         |
| 5        | 2018-08-04 | 1       | 3        | 4         |
| 6        | 2019-08-05 | 2       | 2        | 4         |
+----------+------------+---------+----------+-----------+

预期正确输出

+-----------+------------+----------------+
| buyer_id  | join_date  | orders_in_2019 |
+-----------+------------+----------------+
| 1         | 2018-01-01 | 1              |
| 2         | 2018-02-09 | 2              |
| 3         | 2018-01-19 | 0              |
| 4         | 2018-05-21 | 0              |
+-----------+------------+----------------+

内容的提问来源于stack exchange,提问作者Tushar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:15:43