2014-01-26 112 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語句中使用子查詢。