引用hiveql查询中的计算变量



我将从sas proc sql来到hive。在sas中,您可以使用在使用单词computed计算变量的同一查询中计算的变量。

有没有办法在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
, wt/ht**2 as bmi
, case when ((wt/ht**2) > 30) then 1 else 0 end as obese
from have

最新更新