group by 两个字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了group by 两个字段相关的知识,希望对你有一定的参考价值。
参考技术A group by 的简单说明: group by 和聚合函数一起使用才有意义,比如 count、sum、avg等。例如:select count(a),b from tableOne group by b,c;
最终结果是在group by b 的基础上再次 group by c 。
不是group by 表达式
select 物料号,物料所在部门,单据类型,日期,sum(数量),单位 from proddta.f4111 where 物料号 in (select 物料号 from f3002)
and 单据类型='OV' and 日期 between 108245 and 109245 group 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 两个字段的主要内容,如果未能解决你的问题,请参考以下文章