如何在同一个配置单元表中使用派生列?

j2cgzkjk  于 2021-07-13  发布在  Hadoop
关注(0)|答案(1)|浏览(717)

你能帮我查一下吗。
假设有表employee和列a、b和date列。
我必须用下面的转换将数据从表employee加载到另一个表emp
employee表中的转换
a列的绝对值-(emp中的列名将为abs\u a)
b列的绝对值-(emp中的列名为abs\u b)
找到 sum(ABS_A) 对于给定的日期列
4.找到 sum(ABS_b) 对于给定的日期列
查找 sum(ABS_A)/sum(ABS_B) -列名将是平均值。
因此,最终的表emp将有以下列
1.a
2.b条
3.1绝对值
4.4防抱死制动系统
5.平均
如何在配置单元中处理这样的派生列?
我试过,但现在正在工作。谁能指引我。

insert overwrite into emp
select 
A,
B,
ABS(A) as ABS_A,
ABS(B) as ABS_B,
sum(ABS_A) OVER PARTION BY DATE AS sum_OF_A,
sum(ABS_B) OVER PARTTION BY DATE AS sum_of_b,
avg(sum_of_A,sum_of_b) over partition by date as average
from employee

hfsqlsce

hfsqlsce1#

配置单元不支持在同一子查询级别中使用派生列。使用子查询或函数代替列别名。

insert overwrite table emp 
select A, B, ABS_A, ABS_B, sum_OF_A, sum_of_b, `date`, sum_OF_A/sum_of_b as average
from      
(
select A, B, ABS(A) as ABS_A, ABS(B) as ABS_B, `date`,
       sum(ABS(A)) OVER (PARTTION BY DATE) AS sum_OF_A, 
       sum(ABS(B)) OVER (PARTTION BY DATE) AS sum_of_b
  from employee
)s;

相关问题