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 최대값을 구해 오면 될려는지 고수님들께 질문드립니다.
-- 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 ;