Hive 从日期小于最大日期的配置单元表中选择

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

我试图从一个配置单元表中选择*,其中名为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: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