小编典典

如何在单行中选择多列的AVG

sql

如何选择多列的平均值?

假设我有一些数据,例如:

X   Y    Z
-------------
6   3    3
5   5    NULL
4   5    6
11  7    8

我想得到像

AVG
-------------
4
5
5
8.66666667

我试过了 select avg(x, y, z) from table

但这是行不通的。

有关查询的任何想法可以做到这一点?


阅读 226

收藏
2021-03-23

共1个答案

小编典典

尝试

 Select     (Coalesce(x,0) + Coalesce(y,0) + Coalesce(z,0)) /
       (Coalesce(x/x, 0) + Coalesce(y/y, 0) + Coalesce(z/z, 0))

或者

 Select (Coalesce(x,0) + Coalesce(y,0) + Coalesce(z,0)) /
         (Case When x Is Null 0 Else 1 End +
          Case When y Is Null 0 Else 1 End +
          Case When z Is Null 0 Else 1 End)
2021-03-23