我有一张这样的表:
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
答案 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 );