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
我想要得到的最新記錄(包括每一個colums 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可以得到正確的結果,但是當海量數據時,它運行緩慢。
**有沒有辦法做到這一點,沒有左外連接? **
感謝您的問題和答案,他們完全解決了我的問題! – eleforest