2012-08-16 67 views
0

我試着四處搜尋這個,但說實話我並不確定究竟要搜索什麼...所以請耐心等待,如果這已被問到。SQL查詢幫助 - 在同一列上使用max()兩次

我有了這樣的事件列表的表:

Date  Event 
-----  ------ 
1/1/2012 Event1 
1/2/2012 Event1 
1/4/2012 Event2 
1/6/2012 Event1 
etc. 

我所試圖做的是做一個選擇在此表中,返回兩個最近的日期是Event1發生,最最近發生的日期是Event2。因此,使用上表作爲例子,我希望看到以下結果:

Event 1  Event2 
-------  ------ 
1/6/2012  1/4/2012 

有關如何實現此目的的任何想法?我知道如何分別得到這些值

SELECT max(date) FROM table WHERE Event LIKE 'Event1' 

只是沒有在一起作爲一個結果。

回答

3

您可以使用CASE語句和MAX()函數。

SELECT MAX(CASE WHEN event = 'Event1' THEN date END) Event1, 
    MAX(CASE WHEN event = 'Event2' THEN date END) Event2 
FROM yourTable 

SQL Fiddle with Demo

+0

這正是我需要的!感謝bluefeet! – 2012-08-16 12:59:52

0

嘗試在event列此查詢的任何值:

select MAX(date), event 
from events_table 
group by event;