다이나믹 쿼리 수행시 최종 max 데이터를 구해오고 싶습니다. 0 2 686

by fwa [SQL Query] [2021.03.31 22:41:24]


A  B      C         D      E    F
----------------------------
A A01 A0101 A010101 001 Y
A A01 A0101 A010101 002 N
A A01 A0101 A010101 003 Y
A A02 A0201 A020201 001 Y
A A02 A0202 A020202 001 Y
A A02 A0203 A020301 001 Y
A A02 A0203 A020302 001 Y
A A02 A0203 A020302 002 Y
A A02 A0203 A020302 003 Y
A A02 A0203 A020302 004 Y

SELECT 
A,B,C,D,E
FROM 
TABAL_A
WHERE 
A ='A'
AND E = (SELECT MAX(E) E FROM A WHERE D ='A010101 ')
 

화면에서 조건이 4개가 있습니다.

조건 4개는 콤보로 이루어 지고, 다이나믹 쿼리 수행시에 마지막 조회 죄건에 max 최대값을 구해 오면 될려는지 고수님들께 질문드립니다. 

by 마농 [2021.04.01 08:51:28]
-- 1. e 까지만 필요한 경우
SELECT a, b, c, d
     , MAX(e) e
  FROM tabal_a
 WHERE a = 'A'
 GROUP BY a, b, c, d
;
-- 2. f 도 필요한 경우
SELECT a, b, c, d
     , MAX(e) e
     , MAX(f) KEEP(DENSE_RANK LAST ORDER BY e) f1
     , SUBSTR(MAX(e || f), 4) f2
  FROM tabal_a
 WHERE a = 'A'
 GROUP BY a, b, c, d
;
-- 3. 더 많은 항목들이 필요한 경우
SELECT *
  FROM (SELECT a, b, c, d, e, f, g, h, i, j
             , ROW_NUMBER() OVER(PARTITION BY a, b, c, d ORDER BY e DESC) rn
          FROM tabal_a
         WHERE a = 'A'
        ) a
 WHERE rn = 1
;

 


by fwa [2021.04.01 22:49:13]

정말 감사 합니다 ㅠㅠ

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