不是group by 表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不是group by 表达式相关的知识,希望对你有一定的参考价值。

select 物料号,物料所在部门,单据类型,日期,sum(数量),单位 from proddta.f4111 where 物料号 in (select 物料号 from f3002)
and 单据类型='OV' and 日期 between 108245 and 109245 group by 物料号

执行后提示“不是group by 表达式”

原因:select的不是聚合的字段和order by中的字段都必须在group by 中出现
解决办法:select count(advicedeta0_.topic_id) as col_0_0_, base_data2_.column_name as col_1_0_, advicedeta0_1_.congressId as col_2_0_
from advice_detail advicedeta0_ inner join topic advicedeta0_1_ on advicedeta0_.topic_id=advicedeta0_1_.id, Congress congress1_, Base_data base_data2_
where advicedeta0_1_.congressId=congress1_.id and congress1_.title=base_data2_.id and advicedeta0_1_.Congress_govid=2 and advicedeta0_1_.topictype=1
group by advicedeta0_1_.congressId,base_data2_.column_name,base_data2_.id
order by base_data2_.id
参考技术A oracle吧?oracle对SQL语句比较严格,这是执行不了的。。mysql一般能执行过去没问题。
改成 select sum(数量) from proddta.f4111 where 物料号 in (select 物料号 from f3002)
and 单据类型='OV' and 日期 between 108245 and 109245 group by 物料号

group by前面只能用sum(*),count(*).这种聚合函数
参考技术B 你要这样:
group by 物料号,物料所在部门,单据类型,日期,单位;
把非聚合函数的列都加入group by中才行本回答被提问者采纳

以上是关于不是group by 表达式的主要内容,如果未能解决你的问题,请参考以下文章

SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式

Lambda表达式 group by having问题

为啥这不起作用? ORA-00979: 不是 GROUP BY 表达式

Snowflake:SQL 编译错误:不是有效的 group by 表达式

ORA-00979: 在使用子查询查询视图时不是 GROUP BY 表达式

oracle 运行出错:不是group by 表达式 求解