테이블에서 두 번째 최신 날짜를 검색하려고합니다. 예를 들어 내 테이블이라고 생각하면 다음과 같습니다.테이블에서 두 번째 최신 날짜를 검색하는 방법
COL1| COL2| COL3
---------------------
A | 1 | 25-JUN-14
B | 1 | 25-JUN-14
C | 1 | 25-JUN-14
A | 1 | 24-JUN-14
B | 1 | 24-JUN-14
C | 1 | 24-JUN-14
A | 1 | 23-JUN-14
B | 1 | 23-JUN-14
C | 1 | 23-JUN-14
내가 원하는 결과를 얻을 수있는이 쿼리를 만듭니다 (두 번째 최신 날짜).
SELECT sub.COL1, sub.COL2, MAX(sub.COL3)
FROM (SELECT t.COL1, t.COL2, t.COL3
FROM test t
GROUP BY t.COL1, t.COL2, t.COL3
HAVING MAX(t.COL3) < (
SELECT MAX(COL3)
FROM test sub
WHERE sub.COL1=t.COL1 AND sub.COL2=t.COL2
GROUP BY COL1, COL2)) sub
GROUP BY sub.COL1, sub.COL2;
두 번째 최신 날짜를 얻으려면 여러 중첩 된 하위 쿼리를 사용하는 크고 지저분한 성명을 볼 수 있습니다. 나는이 문제가 아니라 내 문제에 대한 우아한 해결책을 배우고 싶다. 당신의 도움을 주셔서 감사합니다 .. :)
PS를 : 나는 명령 '로'사용할 수 없습니다입니다 .. :(
이것은 깨끗하고 간단하다. 도대체 내가 어떻게 생각하지 않았는가 : s Thanks btw .. :) – Sas