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

能否不使用子查询按日期分组统计delivery与pickup订单金额?

可以实现,无需子查询

你要的需求可以通过条件聚合直接完成,不用子查询。核心思路是在聚合函数SUM()里嵌套CASE WHEN,按订单类型筛选后分别求和,再按日期分组。

原订单表数据

Table: orders

+-------------+----------+-------------------------------+
| date        | price    | type (delivery or pickup)     |
+-------------+----------+-------------------------------+
| 2022-01-12  |     113  | delivery                      |
| 2022-01-12  |     23   | pickup                        |
| 2022-04-12  |     45   | pickup                        |
| 2022-05-17  |     17   | delivery                      |
| 2022-05-17  |     58   | delivery                      |
| 2021-08-13  |     13   | pickup                        |
| 2021-08-24  |     24   | pickup                        |
+-------------+----------+-------------------------------+

实现SQL

SELECT 
    date,
    SUM(CASE WHEN type = 'delivery' THEN price ELSE 0 END) AS `amount of delivery`,
    SUM(CASE WHEN type = 'pickup' THEN price ELSE 0 END) AS `amount of pickup`
FROM orders
GROUP BY date
ORDER BY date;

执行结果

+-------------+--------------------+-------------------+
| date        | amount of delivery | amount of pickup  |
+-------------+--------------------+-------------------+
| 2021-08-13  |                  0 |                13 |
| 2021-08-24  |                  0 |                24 |
| 2022-01-12  |                113 |                23 |
| 2022-04-12  |                  0 |                45 |
| 2022-05-17  |                 75 |                 0 |
+-------------+--------------------+-------------------+

说明

  • CASE WHEN会根据订单类型判断,只累加对应类型的金额,否则加0,避免出现NULL值
  • GROUP BY date确保按日期分组统计
  • 整个查询没有用到任何子查询,完全符合你的要求

内容的提问来源于stack exchange,提问作者Pavel Savel'ichev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:10:25