Hive子句中的子查询

时间:2014-01-26 18:41:55

标签: hive hiveql

我需要这篇文章的帮助:

我如何在HIVE中写下以下内容......

SELECT * 
FROM tableA 
WHERE colA = (SELECT MAX(date_column) FROM tableA)

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

3 个答案:

答案 0 :(得分:1)

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

  

select * from(select *,rank()over(order by date_col desc)作为排名   来自tableA)S,其中S.rank = 1;

答案 1 :(得分:1)

类似的事情可能会起作用:

SELECT a.* 
FROM tableA a
JOIN (SELECT MAX(date_column) AS max_date_column
      FROM tableA) b
ON a.colA = b.max_date_column

希望有帮助

编辑:我不知道我如何解决这个老问题,您可能很早就解决了这个问题:)

答案 2 :(得分:0)

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