Impala 中新创建列的 WHERE 条件
WHERE condition on new created Column in Impala
在我的 Table 中,我有 UNIX 时间的时间信息,我在 impala 中使用以下函数将其转换为正确的时间格式:
cast(ts DIV 1000 as TIMESTAMP) as NewTime.
现在我想将新创建的列“NewTime”上的 WHERE 查询应用于 select 来自特定时间段的数据,但出现以下错误:
"Could not revolve column/field reference: NewTime".
如何在 impala 中对新创建的列应用 WHERE 查询。
谢谢
您可以使用内部子查询计算它,然后将其用于过滤。
select NewTime
from
(select cast(ts DIV 1000 as TIMESTAMP) as NewTime,... from table) subq
where
subq.NewTime >now()
你也可以像 Gordon 说的那样使用 CTE。
在我的 Table 中,我有 UNIX 时间的时间信息,我在 impala 中使用以下函数将其转换为正确的时间格式:
cast(ts DIV 1000 as TIMESTAMP) as NewTime.
现在我想将新创建的列“NewTime”上的 WHERE 查询应用于 select 来自特定时间段的数据,但出现以下错误:
"Could not revolve column/field reference: NewTime".
如何在 impala 中对新创建的列应用 WHERE 查询。 谢谢
您可以使用内部子查询计算它,然后将其用于过滤。
select NewTime
from
(select cast(ts DIV 1000 as TIMESTAMP) as NewTime,... from table) subq
where
subq.NewTime >now()
你也可以像 Gordon 说的那样使用 CTE。