小编sup*_*erz的帖子

如何在不使用分组依据的情况下用平均值替换空值?

假设有一个表demoa,其中包含以下数据:

date        a           b            c  
2017-05-22  1           6           10  
2017-05-23  2           7           11  
2017-05-24  3           8           12  
2017-05-25  4           9           null
2017-05-26  5           null        null
2017-05-27  null        null        null
Run Code Online (Sandbox Code Playgroud)

我想null用其相应列的平均值替换这些值:

date        a           b            c
2017-05-22  1           6           10
2017-05-23  2           7           11
2017-05-24  3           8           12
2017-05-25  4           9           11
2017-05-26  5           7.5         11
2017-05-27  3           7.5         11
Run Code Online (Sandbox Code Playgroud)

我尝试nvl使用avg(),但这需要group by每一列并且无法删除null值:

select 
    date,
    nvl(a,avg(a)),
    nvl(b,avg(b)),
    nvl(c,avg(c))
from damoa
group …
Run Code Online (Sandbox Code Playgroud)

sql hive

2
推荐指数
1
解决办法
5518
查看次数

标签 统计

hive ×1

sql ×1