SQL查询帮助 - 在同一列上使用两次max()

时间:2012-08-16 12:51:56

标签: sql

我试着四处寻找这个,但说实话,我真的不确定要搜索什么...所以如果以前有人问过这个问题请耐心等待。

我有一个包含这样的事件列表的表:

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'

只是不在一起作为一个结果。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

event列上的任何值尝试此查询:

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