2013-02-01 72 views
7

我需要在postgresql中獲取最大時間戳的一行信息。下面是這個問題的一個演示:如何在postgres中獲取最大時間戳的行?

drop table Mytable cascade 
create table MyTable (usr char(1), event_dt timestamp without time zone); 
insert into mytable values ('A','01-JAN-2009 11:10:11'); 
insert into mytable values ('A','02-JAN-2009 11:10:22'); 
insert into mytable values ('B','02-JAN-2009 01:01:59'); 
insert into mytable values ('C', '31-DEC-2008 02:02:02'); 
insert into mytable values ('D', '31-DEC-2008 03:03:03'); 

如果我做

select max(event_dt) from (
select usr,event_dt from mytable where usr= 'A') as foo 

這是那種我所需要的,但它只返回event_dt 「2009-01-02 11點10分22秒「

我想要usr以及該行的event_dt。我該怎麼做?

+2

你想,如果有幾行用'最大(event_dt)'做什麼? –

+1

我回到了以前的版本。請不要添加其他問題,請爲此啓動一個*新的*。如果需要,您可以在編輯歷史記錄中找到您的文本。還有:許多密切相關的問題。 [這是一個](http://stackoverflow.com/questions/3800551/sql-select-first-row-in-each-group-by-group)。 –

回答

19

我只想去...

SELECT usr, event_dt FROM mytable ORDER BY event_dt DESC LIMIT 1 
+0

感謝這個作品! – Gob00st

+0

太棒了!開箱即用 – charybr

+1

**定時差**?我對OP和Najzero解決方案的大約10億行數據進行了時間測試。 Najzero的解決方案也有25%的性能提升。所以它不僅看起來乾淨,而且速度更快(可能是因爲顯而易見的原因) – Torxed

相關問題