2014-01-26 134 views
1

我需要这片帮助:子查询在蜂巢Where子句

我怎么能写在HIVE以下...

SELECT * FROM表A 其中可乐=(选择TableA的最大值(date_column) )

我只需要查询表中最新的当前记录。我将日期存储为蜂巢中的字符串,如“yyyy-mm-dd”。

+0

SELECT dateCol FROM TABLEA JOIN (SELECT TO_DATE(dateCol)AS dDate FROM TABLEA ORDER BY TO_DATE(dateCol)DESC LIMIT 1)测试ON test.ddate = tableA.dateCol – raunakjhawar

回答

1

避免JOIN,使用分析和窗口功能:

SELECT * FROM(SELECT *,秩()以上(由date_col的降序顺序)从表A秩 )S其中S.rank = 1;

+0

我尝试了SHOW功能和RANK ()没有列出我可以调用的函数吗? – raunakjhawar

+0

[Windowing and Analytics](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics)版本0.11中引入 – libjack

+0

我使用CDH 4.5,有没有办法升级HIVE? – raunakjhawar

0

请注意,在Hive 0.13+中,可以在WHERE语句中使用子查询。