2012-08-16 2 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입니다. 이 acheive하는 방법에 대한

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

어떤 아이디어 : 예를 들어 위의 표를 사용 그래서, 다음과 같은 결과를보고 싶은 것? 이 값을 개별적으로 얻는 방법을 알고 있습니다.

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

단지 하나의 결과로 함께 사용하지 마십시오.

답변

3

MAX() 기능이있는 CASE 문을 사용할 수 있습니다.

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

을 내가 필요 정확히 무슨 그! 파란색 감사합니다! –

0

event 컬럼에 어떤 값이 쿼리 참조 :

select MAX(date), event 
from events_table 
group by event; 
관련 문제