配置单元:选择具有最大值但没有连接的列的行

时间:2015-01-21 17:32:25

标签: hadoop hive hiveql

在表上编写配置单元查询以选择列中具有最大值的行 有表格包含以下数据:

key    value    updated_at
  1    "a"      1  
  1    "b"      2  
  1    "c"      3

需要选择最后更新的行。 目前正在使用以下逻辑

select tab1.* from table_name tab1
join select tab2.key , max(tab2.updated_at) as max_updated from table_name tab2
on tab1.key=tab2.key and tab1.updated_at = tab2.max_updated;

还有其他更好的方法来执行此操作吗?

1 个答案:

答案 0 :(得分:1)

如果updated_at对于该表是唯一的,那么以下可能是一种更简单的方法来获取您正在寻找的内容:

-- I'm using Hive 0.13.0
SELECT * FROM table_name ORDER BY updated_at DESC LIMIT 1;

如果updated_at由于某种原因可能不是唯一的,您可能需要调整ORDER BY逻辑以打破您想要的任何关系。