在hiveql查询中引用计算所得的变量

问题描述

我要从sas proc sql进行配置。在sas中,您可以使用在通过使用计算出的单词计算出的同一查询中计算出的变量。

是否可以在hiveql中执行此操作,还是必须在一个查询中计算变量并将其添加到表/数据集中,然后在另一个查询中使用它?

谢谢。

解决方法

calculated关键字是proc sql的扩展名,在其他数据库中不可用。典型的方法是CTE或子查询:

with cte as (
      select . . .,. . . as new_column
      from . . .
     )
select t.*,<new_column expression>
from cte;

或类似的子查询。

,

SAS中所有的calculated关键字都是允许您引用前面在select子句中定义的变量,而无需重新键入派生该变量的代码。在其他SQL方言中,您只需再次重复该逻辑即可。

所以不要像这样的代码来引用BMI的值

select gender,wt/ht**2 as bmi,case when (calculated bmi > 30) then 1 else 0 end as obese
from have

您只需要重新计算BMI。

select gender,case when ((wt/ht**2) > 30) then 1 else 0 end as obese
from have