蜂巢中的独特Max

时间:2017-12-01 16:34:48

标签: sql hive

我有一张这样的表:

id         | date_r
1          | 2017-12-01
2          | 2017-12-06
1          | 2017-12-01
2          | 2017-12-03
3          | 2017-12-02

我想以最大日期获取所有ID。

我做了这样的查询:

select t1.id, t2.date_r from table t1
inner join 
( select id, max(date_r) date_r_max from table group by id )t2
on t1.id=t2.id and t1.date_r=t2.date_r_max

我有这个结果:

id         | date_r
1          | 2017-12-01
2          | 2017-12-06
1          | 2017-12-01
3          | 2017-12-02

但我想要这个结果:

id         | date_r
1          | 2017-12-01
2          | 2017-12-06
3          | 2017-12-02

任何人都知道如何获得独特的最大值?

我的数据库是Hive

1 个答案:

答案 0 :(得分:0)

你很亲密。当这条查询可以完成这项工作时,你会考虑使用JOIN

来复杂化
select id, MAX(date_r) date_r
               FROM t1 GROUP BY id;

你也提到过,

  

我想以最大日期获取所有ID。

这是什么意思吗?

SELECT id,date_r FROM t1 WHERE 
         date_r IN ( select MAX(date_r) 
                         FROM t1 GROUP BY id );

DEMO