Hive 从日期小于最大日期的配置单元表中选择
我试图从一个配置单元表中选择*,其中名为TRANS_date的日期列大于最大TRANS_date之前的365天 以下是我到目前为止尝试过的查询:Hive 从日期小于最大日期的配置单元表中选择,hive,hiveql,Hive,Hiveql,我试图从一个配置单元表中选择*,其中名为TRANS_date的日期列大于最大TRANS_date之前的365天 以下是我到目前为止尝试过的查询: select * from TABLE where (TRANS_DATE > DATE_SUB(max(TRANS_DATE), 365)) and (TRANS_DATE < max(TRANS_DATE)); 下面是我得到的错误: 编译语句时出错:失败:SemanticException[错误10128]:第2:2
select * from TABLE
where (TRANS_DATE > DATE_SUB(max(TRANS_DATE), 365)) and
(TRANS_DATE < max(TRANS_DATE));
下面是我得到的错误:
编译语句时出错:失败:SemanticException[错误10128]:第2:28行尚未支持UDAF“max”的位置
日期格式的一个示例是:2006-05-30 00:00:00.0
查询是将数据从配置单元表读取到Qlikview中,因此理想情况下,我不希望事先定义变量,而是希望动态地进行选择。如果有任何问题,我深表歉意,因为我是新加入蜂巢的。在子查询中计算max\u date并与表交叉连接:
select *
from TABLE a
cross join --cross join with single row
(select max(TRANS_DATE) as max_trans_date from TABLE) b
where (a.TRANS_DATE > DATE_SUB(b.max_trans_date, 365))
and (a.TRANS_DATE < b.max_trans_date);
具有分析功能:
select a.* from
(select a.*,
max(TRANS_DATE) over() as max_trans_date
from TABLE a) a
where (a.TRANS_DATE > DATE_SUB(a.max_trans_date, 365))
and (a.TRANS_DATE < a.max_trans_date);
感谢这个leftjoin,在过去使用过oraclesql之后,我想我可以做简单的where-date