오라클 sum할때 각각 항목마다 다른값을 가져오고 싶을때 1 1 575

by 십이장기 [SQL Query] [2021.06.08 10:06:16]


테이블 TEMP테이블에 값이

 

날짜                  A      B       C      D

2020-06-01         3      4       5       7

2021-05-12         4      8       9       2

2021-06-08         1      3       5       1

 

합계                   8     3        19      1        

 

이와같이 합계부분을 구할때 A,C항목은 그냥 말그대로 각 ROW의 SUM을 구하고싶고,

B,D항목은 최근날짜의 값만 가져오고 싶은데 제 부족한 쿼리실력으론 힘드네요 ㅠ

방법이 없을까요?

 

by 샤랄라 [2021.06.08 11:25:23]
with t as 
(select '2020-06-01' dt, 3 a, 4 b, 5 c, 7 d from dual union all
 select '2020-05-12', 4, 8, 9, 2 from dual union all
 select '2020-06-08', 1, 3, 5, 1 from dual
)
select nvl(dt, '합계')
     , sum(a) as a
     , max(b) keep(dense_rank last order by dt) as b
     , sum(c) as c
     , max(d) keep(dense_rank last order by dt) as d
from t
group by rollup(dt)
order by dt
;

 

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