쿼리를 어떻게 해야할까요? 0 1 250

by 실베 [SQL Query] [2019.05.15 16:09:02]


과일 생산량을 관리하는 테이블이 있다고 가정하겠습니다..

 

Fruit     년도         생산갯수

사과     2019         2

사과     2018         1

배        2018         1

오이     2017        1

 

제가 조회하고 싶은 결과는... 2019를 파라미터로 넣으면

2019년도는 기준값이고 가장 마지막 년도에 해당하는 각 과일의 정보를 가져옵니다.

사과 2019  2

배   2018   1

오이  2017  1

 

 

2018년도를 파라미터로 조회하면

 

사과 2018 1

배    2018  1

오이  2017  1

 

 

이렇게 조회하고 싶습니다.

어떻게 조회를 해야할까요? ㅠㅠ

by 마농 [2019.05.15 17:09:33]
WITH t AS
(
SELECT '사과' Fruit, '2019' yyyy, 2 cnt FROM dual
UNION ALL SELECT '사과', '2018', 1 FROM dual
UNION ALL SELECT '배  ', '2018', 1 FROM dual
UNION ALL SELECT '오이', '2017', 1 FROM dual
)
SELECT *
  FROM (SELECT Fruit, yyyy, cnt
             , ROW_NUMBER() OVER(PARTITION BY Fruit ORDER BY yyyy DESC) rn
          FROM t
         WHERE yyyy <= :v_yyyy
        ) 
 WHERE rn = 1
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입