2012-08-16 60 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;