问题描述
在我的表中,我有 UNIX 时间的时间信息,我使用 impala 中的以下函数将其转换为正确的时间格式:cast(ts DIV 1000 as TIMESTAMP) as NewTime.
现在我想对新创建的列“NewTime”应用 WHERE 查询以选择特定时间段的数据,但出现以下错误:
"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。