oracle报错不是单租函数,oracle中报错不是单组分组函数怎么解决

满意答案

00e27ab806e4881f8254fe7ae8741834.png

intothewest

2013.06.09

00e27ab806e4881f8254fe7ae8741834.png

采纳率:52%    等级:10

已帮助:2168人

select p.requi_form,

sum(decode(p.requi_form, '0', r.bid_amount, 0)) a,

sum(decode(p.requi_form, '1', r.bid_amount, 0)) b,

sum(decode(p.requi_form, '2', r.bid_amount, 0)) c,

sum(decode(p.requi_form, '3', r.bid_amount, 0)) d,

sum(decode(p.requi_form, '4', r.bid_amount, 0)) e,

sum(p.bid_amount) 采购金额,

sum(r.bid_amount) 招标采购金额,

sum(r.bid_amount) / sum(p.bid_amount) 招标采购率

from cg_purchase_project p,

cg_purchase_report r

where r.purc_pro_id = p.purc_pro_id

and p.purc_pro_state != 11

group by p.requi_form

order by p.bid_team;

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Oracle数据库中使用分组函数进行查询时,可能会出现“不是单组分组函数”的误。 在Oracle中,分组函数是指那些能够对一组数据进行操作,并返回一个结果的函数,例如SUM、AVG、COUNT等。这些函数通常用于配合GROUP BY子句一起使用,以进行分组查询和计算。 “不是单组分组函数”的误通常是由于在SQL语句中使用了非法的表达式或函数,导致其无法正确进行分组或计算而引发的。 造成此误的常见原因有: 1. 在SELECT列表中使用了不在GROUP BY子句中的列:在一个GROUP BY查询中,SELECT列表中的列必须要么是一个分组列,要么是一个分组函数的结果。如果使用了不在GROUP BY子句中的列,就会导致该误的发生。 2. 在WHERE子句中使用了非分组列的比较或条件:在分组查询中,WHERE子句中的条件只能使用分组列或分组函数进行比较。如果使用了非分组列的比较或条件,同样会触发该误。 3. 在HAVING子句中使用了非分组列的比较或条件:HAVING子句用于筛选分组后的结果,同样只能使用分组列或分组函数进行比较。如果使用了非分组列的比较或条件,也会导致该误的出现。 为了解决“不是单组分组函数”的误,需要确保满足以下条件: 1. 在SELECT列表中,只使用分组列或分组函数的结果。 2. 在WHERE子句中,只使用分组列或分组函数进行比较。 3. 在HAVING子句中,只使用分组列或分组函数进行比较。 通过遵循以上规则,可以避免“不是单组分组函数”的误的发生,并正确地使用Oracle中的分组函数进行查询和计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值