永发信息网

sql语句某列求均值 如何忽略其中值为零的 例如1,2,0,3,4只对1,2,3,4求平均

答案:3  悬赏:60  手机版
解决时间 2021-11-11 01:30
  • 提问者网友:贪了杯
  • 2021-11-10 16:46
sql语句某列求均值 如何忽略其中值为零的 例如1,2,0,3,4只对1,2,3,4求平均
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-11-10 17:10
select avg(列) from 表 where 列<>0
加上条件就行啦。追问有很多列的情况呢 说不定哪列有零 谢谢大神追答单列的话可以像上面那样写。多列的话,可以使用联查:
select avg1,avg2 from (select avg(列1) avg1 from 表 where 列1<>0
) a join (select avg(列2) avg2 from 表 where 列2<>0) b
或者给你一个更简单的:
select avg(case 列1 when 0 then null else 列1 end), avg(case 列2 when 0 then null else 列2 end) from 表
可以方便的写多列。
全部回答
  • 1楼网友:刀戟声无边
  • 2021-11-10 18:49
楼主,你好!“落月Prc”的答案是正确的,简单明了
  • 2楼网友:往事隔山水
  • 2021-11-10 18:30

1 2 0 3 4 是一行数据还是一列数据?如果是一行只能是硬代码吧

select (c1+c2+c3+c4)/(decode(c1,0,0,1)+decode(c2,0,0,1)+decode(c3,0,0,1)+decode(c4,0,0,1)) from tb追问
  1. 是列数据 但不止一列有零

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯