我在Hive上使用下面的数据集
+++++++++++++++++++++++++++++++++++++++++++
code dateJ capa
+++++++++++++++++++++++++++++++++++++++++++
1988 2015-08-22 23
0470 2015-07-26 455
... ..... ...
5884 2015-08-01 54
4587 2015-06-05 100
我想选择"代码"从两个日期之间的表。以下查询有效:
SELECT code FROM tabl WHERE dateJ BETWEEN '2015-06-05' AND '2015-08-22'
但是当我使用嵌套/子查询时,我没有工作:
SELECT code FROM tabl WHERE dateJ BETWEEN (SELECT MIN(dateJ) FROM tabl) and (SELECT MAX(dateJ) FROM tabl)
是否有任何机构可以帮助解决问题(使用第二个查询)。 hive不支持子查询。
THX
答案 0 :(得分:1)
我找到了解决方案。这是:
select code from tabl,
(select min(dateJ) mindate, max(dateJ) maxdate from tabl) tmp
where dateJ between tmp.mindate and tmp.maxdate
答案 1 :(得分:0)
遗憾的是,此功能为not supported in Hive。您只能将where子句中的select语句与IN
,NOT IN
,EXISTS
和NOT EXISTS
结合使用。如果你能找到一种方法来构建使用这些和连接所需的功能,那么这就是你要走的路。