by 야근냥 [SQL Query] ORACLE SQL GROUP [2021.02.04 09:55:27]
오라클에서 group by 된 쿼리에서 조건에 따라서 걸러진 최대값 최소값을 구하고 싶습니다.
ex)
SELECT COL1
, COL2
, SUM(COL3)
, --구하고 싶은값 : 그룹바이 내에서 날자정보가 들어있는 COL6가 가장 최근값일때의 COL4
, --구하고 싶은값 : 그룹바이 내에서 날자정보가 들어있는 COL7가 가장 오래된값일때의 COL5
FROM TABEL1 T1
, TABEL2 T2
WHERE T1.KEY = T2.KEY
GROUP BY COL1
, COL2
주석부분이 제가 해결못하는 부분입니다. 현재는 서브쿼리를 통해서 비교문을 구하거나
전체를 한번더 싸서 새로운 제2, 제3의 인라인뷰를 만들어서 구하고 있습니다.
그렇게되니 쿼리를 중첩으로 2중3중으로 싸게되어 매우 지저분하게 되었습니다.
"GROUP BY "를 하더라도 그 내에서 집계함수를 사용하듯 쉽고 간결하게 사용하고 싶습니다.
하지만 도무지 여러방면으로 시도해보고 찾아보아도 알수가 없었기에 질문 남깁니다.
저런 데이터를 구하고 싶을때는 스칼라를 통해 구하는게 최선의 방법인지
혹은 선배님들 , 후배님들은 다른 더 좋은 방식을 알고 계신지 궁금하여 질문남깁니다.
작은 아이디어도 감사히 받겠습니다.