尝试使用 min 子查询查找记录时 Hive 出错
Posted
技术标签:
【中文标题】尝试使用 min 子查询查找记录时 Hive 出错【英文标题】:Hive gives error when trying to find record with min subquery 【发布时间】:2018-02-05 17:01:37 【问题描述】:在蜂巢中,
我正在尝试选择具有最小时间戳的条目,但是它会引发以下错误,不知道是什么原因。
select * from sales where partition_batch_ts = (select max(partition_batch_ts) from sales);
错误
编译语句时出错:FAILED: ParseException line 1:91 cannot identify input near 'select' 'max' '(' in expression specification
【问题讨论】:
【参考方案1】:我认为您需要使用正确的表别名。另外,必须使用IN
而不是=
SELECT s1.*
FROM sales s1
WHERE s1.partition_batch_ts IN
(SELECT MAX(partition_batch_ts)
FROM sales s2);
来自 Hive 手册,SUBQUERIES:
从 Hive 0.13 开始,WHERE 支持某些类型的子查询 子句。
【讨论】:
以上是关于尝试使用 min 子查询查找记录时 Hive 出错的主要内容,如果未能解决你的问题,请参考以下文章
SQL 子查询:如何用 min(date) 和 min(hour) 绘制记录