表格是:
create table test (
id string,
name string,
age string,
modified string)
像这样的数据:
id name age modifed
1 a 10 2011-11-11 11:11:11
1 a 11 2012-11-11 12:00:00
2 b 20 2012-12-10 10:11:12
2 b 20 2012-12-10 10:11:12
2 b 20 2012-12-12 10:11:12
2 b 20 2012-12-15 10:11:12
我想按id获取最新记录(包括每列id,姓名,年龄,修改)分组,如上数据,正确结果是:
1 a 11 2012-11-11 12:00:00
2 b 20 2012-12-15 10:11:12
我喜欢这样:
insert overwrite table t
select b.id, b.name, b.age, b.modified
from (
select id,max(modified) as modified
from test
group by id
) a
left outer join test b on (a.id=b.id and a.modified=b.modified);
这条sql可以得到正确的结果,但是当大量数据时,它运行缓慢。
**没有左外连接有没有办法做到这一点?**