oracle怎么判断group的某个字段的这组数据中是否有0

如果group 之后的这个字段的这组数据中有0,则显示0 ,如果没有,则显示平均值

FineReport 帆软用户3yxeX64K8K 发布于 2023-3-3 14:58
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
zsh331Lv8专家互助
发布于2023-11-14 22:17

SELECT

  CASE WHEN 

           AVG(CASE WHEN 某个字段 = 0 THEN 1 ELSE NULL END) > 0 THEN  '0'  

ELSE  AVG(某个字段) END  AS 某个字段_value

FROM

  tabname

GROUP BY

  group_分组字段

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-3-3 15:03(编辑于 2023-3-3 15:04)

case when 字段=0 then 0 else sum(字段)/count(1) end num

最佳回答
0
luojian0323Lv7资深互助
发布于2023-3-3 15:04

不如再查一个集合,按你的分组取有0的记录,然后关联你的分组汇总的结果 ,如果前面这个集合有值,汇总结果就给个0,如果 前面这个集合没有值,就正常求组内平均值

最佳回答
0
CD20160914Lv8专家互助
发布于2023-3-3 15:05

select t.名称,t.金额,case when t.金额=0 then 平均值 else t.金额 end as 判断后的值 from (

select 名称,sum(金额) as 金额 from 表

group by 名称

) t

  • 5关注人数
  • 286浏览人数
  • 最后回答于:2023-11-14 22:17
    请选择关闭问题的原因
    确定 取消
    返回顶部