Impala 中新创建的列的 WHERE 条件

问题描述

在我的表中,我有 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。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...