[Oracle] 오라클 가로 합계 구하는 방법

오라클 쿼리에서 가로 합계를 구하기 위해서는, 합계를 구할 각 칼럼을 SUM 함수를 사용하여 합산 후 모두 더하면 가로 합계가 계산된다. 오라클은 NULL과 수치 값을 더할 수 없기 때문에 가로 합계를 구할 때 계산 오류가 발생할 수 있으므로 아래의 주의 사항도 꼭 확인하기 바란다. 세로의 총합계를 구하기 위해서는 ROLLUP 함수를 사용하면 구할 수 있다.

 

목차
  1. 가로 합계 구하기
  2. 가로 합계 구할 때 주의 사항
  3. GROUP BY 절과 가로 합계 구하기

 

가로 합계 구하기

WITH temp AS 
(
    SELECT 150 AS col1, 80   AS col2, 200  AS col3 FROM dual UNION ALL
    SELECT 100 AS col1, NULL AS col2, 250  AS col3 FROM dual UNION ALL
    SELECT 200 AS col1, 100  AS col2, NULL AS col3 FROM dual UNION ALL
    SELECT 120 AS col1, 200  AS col2, 100  AS col3 FROM dual 
)

SELECT SUM(col1)
     , SUM(col2)
     , SUM(col3)
     , SUM(col1) + SUM(col2) + SUM(col3)
  FROM temp

 

 

오라클에서 여러 개의 칼럼을 가로로 합계를 구할 때는 칼럼별 SUM 함수로 합산 후 모두 더해주면 된다.

 

가로 합계 구할 때 주의 사항

WITH temp AS 
(
    SELECT 150 AS col1, 80   AS col2, 200  AS col3 FROM dual UNION ALL
    SELECT 100 AS col1, NULL AS col2, 250  AS col3 FROM dual UNION ALL
    SELECT 200 AS col1, 100  AS col2, NULL AS col3 FROM dual UNION ALL
    SELECT 120 AS col1, 200  AS col2, 100  AS col3 FROM dual 
)

SELECT SUM(col1)
     , SUM(col2)
     , SUM(col3)
     , SUM(col1 + col2 + col3) AS sum1
     , SUM(NVL(col1, 0) + NVL(col2, 0) + NVL(col3, 0)) AS sum2
  FROM temp

 

 

칼럼의 값을 모두 합산 후 SUM 함수로 최종 합산할 경우, 칼럼에 NULL이 있을 경우 합산에 오류가 있을 수 있다.

오라클은 NULL과 수치 값을 더할 경우 연산이 되지 않고 NULL이 반환된다.

 

수치 값을 더할 때는 NULL이 없도록 NVL 함수로 치환 후 합산을 해야 하며, 가로 합계를 구할 때는 첫 번째 예제처럼 칼럼별 SUM 함수로 합산 후 더하는 것이 효율적이다. (예, SUM(col1) + SUM(col2) + SUM(col3))

 

GROUP BY 절과 가로 합계 구하기

SELECT job
     , SUM(sal)
     , SUM(comm)
     , SUM(sal) + SUM(comm)
  FROM emp
 GROUP BY job

 

 

GROUP BY 절을 사용할 때는 칼럼별 SUM 함수로 합산 후 모두 더해주면 된다.

 

[Oracle] 오라클 ROLLUP 총합계만 구하기

오라클에서 ROLLUP 함수를 사용하여 소계, 합계를 구할 수 있다. 그러나 소계를 제외하고 합계만 표시하고 싶을 때는 다양한 방법이 있겠지만, ROLLUP 칼럼을 괄호로 묶어서 합계를 구하는 방법과 GR

gent.tistory.com

 

[Oracle] 오라클 ROLLUP 합계, 소계 구하기

오라클 GROUP BY 쿼리에서 ROLLUP 함수를 사용하여 손쉽게 합계와 소계를 구할 수 있다. 1. GROUP BY 컬럼이 하나인 경우 - GROUP BY 절에 ROLLUP 함수를 추가한 후 그룹핑 컴럼을 인자로 넣는다 SELECT job , SUM(

gent.tistory.com

 

[Oracle] 오라클 누적 합계 구하기 (SUM OVER)

오라클에서 누적 합계를 구하기 위해서는 SUM 함수와 OVER 절을 사용하면 된다. OVER 절을 사용하면 GROUP BY 절을 사용하지 않고도 SELECT 절에서 단독으로 합계를 구할 수 있다. OVER 절 내부의 ORDER BY

gent.tistory.com

 

댓글

Designed by JB FACTORY