SELECT BASEDATE AS 날짜, BASETIME AS 시간, CATEGORY AS 요일, FCSTVALUE AS 카테고리 FROM FHVF01L WHERE BASEDATE IN ( SELECT BASEDATE FROM ( SELECT DISTINCT BASEDATE FROM FHVF01L WHERE RESULTCODE = '0000' ORDER BY BASEDATE DESC ) WHERE ROWNUM <= 3 ); -- 최근 3일 데이터 구하기
위의 쿼리 조회 결과는
날짜 | 시간 | 요일 | 카테고리 |
20180507 | 1800 | POP | 10 |
20180507 | 1700 | PTY | 0 |
20180508 | 1800 | R06 | 0 |
20180508 | 1700 | POP | 10 |
20180509 | 1900 | PTY | 0 |
20180509 | 1700 | R06 | 0 |
위와 같은 결과를 날짜별 최신시간 데이터만 표출되도록 하고싶은데.. 가능한지 궁금합니다.
가능하다면 어떤 함수를 사용해야 하는지 힌트 부탁드립니다..
SELECT basedate AS 날짜 , basetime AS 시간 , category AS 요일 , fcstvalue AS 카테고리 FROM (SELECT basedate, basetime, category, fcstvalue , ROW_NUMBER() OVER(PARTITION BY basedate ORDER BY basetime DESC) rn FROM (SELECT basedate, basetime, category, fcstvalue , DENSE_RANK() OVER(ORDER BY basedate DESC) dr FROM fhvf01l WHERE resultcode = '0000' ) WHERE dr <= 3 ) WHERE rn = 1 ;