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

SQL分组直方图报错:select子句非聚合或未在GROUP BY中

SQL分组统计问题:按包裹类型拆分重量区间统计

我是SQL新手,运行代码时碰到错误:select clause is neither an aggregate nor in the group by clause。我有一张pkg_data表,包含pkg_type(颜色分类)、pkg_weight字段,想用CASE语句按重量给包裹分类,统计每个区间的包裹数量。不加GROUP BY时代码能运行,但会合并所有pkg_type的统计结果,我需要按pkg_type拆分生成多组直方图。

原代码如下:

with pkg_size as 
 (
 select 
 pkg_type,
 date,
 pkg_weight,

 case
  when pkg_weight >= 0.5 AND pkg_weight < 0.5 then 'small'
  when pkg_weight >= 1 AND pkg_weight < 2 then 'medium'
  when pkg_weight >= 2 AND pkg_weight < 3 then 'large'
  else 'out of range'
 end as pkg_size_histo

 from pkg_data
 where date > x1 and date <= y
 and pkg_size_hist is not null

 --group by pkg_type -- 报错: select clause is neither an aggregate nor in the group by clause
 order by date

)
select pkg_size_hist, count(pkg_size_hist )
from pkg_size
group by pkg_size_hist ;

当前输出是合并后的直方图,我希望按pkg_type拆分统计,自己找到临时修复方案,想获得更优编程建议:

临时修复代码:

select pkg_type,pkg_size_hist, count(pkg_size_hist )
from pkg_size
group by pkg_type, pkg_size_hist ;

优化建议

  • 修正CASE区间逻辑:原CASE第一个条件pkg_weight >= 0.5 AND pkg_weight < 0.5永远不成立,会导致所有小重量包裹被归为out of range,建议调整为合理区间,比如pkg_weight >= 0 AND pkg_weight < 0.5 then 'small',同时补全原代码遗漏的区间(比如0.5到1的重量范围)。
  • 精简CTE字段:CTE中date和pkg_weight字段在最终统计中用不到,可以只保留pkg_type和pkg_size_histo,减少不必要的数据处理。
  • 合并逻辑,简化代码:如果不需要复用CTE结果,可直接把CASE逻辑嵌入主查询,让代码更紧凑。
  • 修正过滤条件:原代码中and pkg_size_hist is not null是笔误,该字段是CASE生成的临时字段,原表不存在,应改为and pkg_weight is not null,避免统计空重量数据。

优化后示例代码:

select 
  pkg_type,
  case
    when pkg_weight >= 0 AND pkg_weight < 0.5 then 'small'
    when pkg_weight >= 0.5 AND pkg_weight < 1 then 'small_plus' -- 补全原代码遗漏的区间
    when pkg_weight >= 1 AND pkg_weight < 2 then 'medium'
    when pkg_weight >= 2 AND pkg_weight < 3 then 'large'
    else 'out of range'
  end as pkg_size_histo,
  count(*) as package_count
from pkg_data
where date > x1 and date <= y
and pkg_weight is not null
group by pkg_type, pkg_size_histo
order by pkg_type, pkg_size_histo;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:03:20