我正在尝试选择表中距离最早日期1年以内的所有行。我使用以下代码:
select *
from baskets a
where activitydate < (select date_add((select min(activitydate) mindate_a from baskets), 365) date_b from baskets)
limit 10;
但得到以下错误消息:
Error while compiling statement: FAILED: ParseException line 1:55 cannot recognize input near 'select' 'date_add' '(' in expression specification
Total execution time: 00:00:00.338
有什么建议吗?
编辑:使用此代码:
select *
from baskets a
where activitydate < (select date_add(min(activitydate), 365) from baskets)
limit 10;
我得到这个错误:
Error while compiling statement: FAILED: ParseException line 1:55 cannot recognize input near 'select' 'date_add' '(' in expression specification
2条答案
按热度按时间o0lyfsai1#
使用
JOIN
而不是在子查询中选择。我不认为hive支持select in where子句<
条件。仅限IN
以及EXISTS
从Hive0.13开始可以使用:语言手册子查询disho6za2#
我很想使用窗口函数:
如果你真的想让你的语法起作用,试着减少
select
学生: