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

SQL中使用CASE与GROUP BY对苹果表按颜色分类汇总的问题求解

错误原因

  1. 聚合函数与CASE表达式顺序颠倒:分类统计需要先对单行数据做颜色条件判断,再对符合条件的重量求和,而非先聚合再判断条件。
  2. 第一段SQL的CASE表达式缺少END关键字闭合,且GROUP BY中错误加入了apple_wgt字段,分组粒度过细,无法按apple_id完成汇总。
  3. 第二段SQL在GROUP BY子句中使用了SUM聚合函数,SQL语法不允许在分组依据中使用聚合计算,因此直接触发报错。

正确实现代码

SELECT 
  apple_id,
  SUM(apple_wgt) AS total_apple_wgt,
  SUM(CASE WHEN apple_colour != 'no colour' THEN apple_wgt ELSE 0 END) AS apple_wgt_no_colour,
  SUM(CASE WHEN apple_colour = 'no colour' THEN apple_wgt ELSE 0 END) AS apple_wgt_colour
FROM apples
GROUP BY apple_id

逻辑说明

代码按apple_id分组完成统计:

  • 第一个SUM直接统计每个apple_id对应的所有苹果总重量
  • 后两个SUM先对每行数据做颜色判断:符合条件则取当前行的apple_wgt值,不符合则取0,求和后即可得到对应分类的总重量
  • GROUP BY仅保留apple_id即可,无需添加其他字段

内容的提问来源于stack exchange,提问作者Muhammad Abdul Haiy Halid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:15:10