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

GROUP BY子句报错:按Condicion分组时Cantidad列不符合聚合规则

问题分析与解决方案

报错原因

你执行的select * from exercisepractice GROUP by Condicion违反了SQL分组规则:当使用GROUP BY时,SELECT列表中的所有非聚合列必须出现在GROUP BY子句中。你这里SELECT了Cantidad和Sexo,但只按Condicion分组,数据库无法确定同一Condicion下多个Cantidad、Sexo值该返回哪一个,因此触发报错。

你的SQL代码问题

  1. 视图定义冗余:视图里重复了两次Aprobados的查询和两次Desaprobados(还存在拼写错误Desprobados)的查询,会导致视图结果出现重复行,完全没必要。
  2. 后续分组操作多余:你的预期结果是按Condicion和Sexo分组的统计,实际上视图本身可以直接生成该结果,不需要额外再执行分组操作。

修正后的SQL代码

第一步:修正视图创建语句

去掉重复的UNION ALL分支,统一拼写Desaprobados:

create view exercisepractice as 
-- 统计男、女性的Aprobados数量
select 'Aprobados' as Condicion, 
       sum(case when Promedio>13.5 then 1 else 0 end) as Cantidad, 
       A.Sexo 
from vAlumnos A 
inner join vMatricula M on A.CodAlumno=M.CodAlumno
inner join vNotas N on M.NroMatricula=N.NroMatricula
where N.SemAcademico='2020-I' 
GROUP BY A.Sexo 

union all 

-- 统计男、女性的Desaprobados数量
select 'Desaprobados' as Condicion, 
       sum(case when Promedio<13.5 then 1 else 0 end) as Cantidad, 
       A.Sexo 
from vAlumnos A 
inner join vMatricula M on A.CodAlumno=M.CodAlumno
inner join vNotas N on M.NroMatricula=N.NroMatricula
where N.SemAcademico='2020-I' 
GROUP BY A.Sexo;

第二步:直接查询视图得到预期结果

无需额外分组,直接执行:

select * from exercisepractice;

即可得到你想要的结果:

CONDICIONCANTIDADSEXO
AprobadosXXXXM
AprobadosXXXXF
DesaprobadosXXXXM
DesaprobadosXXXXF

额外优化(可选)

可以用更简洁的方式生成结果,一次查询完成统计,避免重复的JOIN逻辑:

create view exercisepractice as 
select 
    case 
        when Promedio>13.5 then 'Aprobados' 
        else 'Desaprobados' 
    end as Condicion,
    count(*) as Cantidad,
    A.Sexo
from vAlumnos A 
inner join vMatricula M on A.CodAlumno=M.CodAlumno
inner join vNotas N on M.NroMatricula=N.NroMatricula
where N.SemAcademico='2020-I' 
      and Promedio != 13.5 -- 若需排除刚好13.5的情况可保留,否则删除
group by A.Sexo, 
         case when Promedio>13.5 then 'Aprobados' else 'Desaprobados' end;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:10:19