在表上编写配置单元查询以选择列中具有最大值的行 有表格包含以下数据:
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;
还有其他更好的方法来执行此操作吗?
答案 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
逻辑以打破您想要的任何关系。