sqld

SQLD 사칙연산

noAb 2024. 10. 29. 14:57

기본적으로 SQL에서는 사칙연산이 가능한데 비슷한 기능으로 SUM과같은 함수도 존재해서 개념적으로 헷갈리지않게 작성해보겠습니다.

COL1 COL2 COL3 COL4
1 (NULL) 100 200
2 20 (NULL) 210
3 30 (NULL) (NULL)
4 40 140 240

쿼리로 예시를 보기전에 먼저 짚고 넘어가야할게 몇가지 있습니다.

  1. SUM은 행들의 합이고 사칙연산은 각 컬럼들의 계산입니다.
  2. SUM과 같은 함수를 사용하면 결과는 한 행만 나옵니다.

1. 기본 SUM

SELECT SUM(COL1) FROM TABLE

예시테이블에 COL1컬럼들을 모두 더한는 간단한 쿼리입니다. 

결과) 10

SELECT SUM(COL2) FROM TABLE

SUM에서 NULL이 잇는 행은 제외가 됩니다.

결과) 90


2. 기본 사칙연산

SELECT (COL1 + COL2 + COL3 + COL4) AS PLUS FROM TABLE

사칙연산은 각행들이 따로 진행이 되므로 데이터 행수만큼 결과가 나오고 NULL이 포함된 사칙연산은 NULL이됩니다.

결과) 

PLUS
NULL
NULL
NULL
424

네번째 행을 제외한 행에는 NULL이 포함된 사칙연산이므로 NULL이 나오고 네번째 행은 NULL이 포함되지 않았으므로 정상적인 수치가 나옵니다.


3. SUM에 대한 사칙연산

SELECT SUM(COL1)+SUM(COL2)+SUM(COL3)+SUM(COL4) FROM TABLE

각 행들 값을 SUM으로 더한 다음에 +연산자로 합치는 쿼리입니다.

각 SUM이 먼저 수행이 되므로 각 컬럼들에서 NULL을 제외한 합을 구한뒤 +사칙연산을 하시면 됩니다.

( 10 + 90 + 240 + 650 ) 

결과) 990


4. 사칙연산에 대한 SUM

SELECT SUM(COL1+COL2+COL3+C0L4) FROM TABLE

각 행들에 사칙연산을 먼저 한뒤 나온 4개의 값을 SUM을 하는 쿼리인데 

네번째 행을 제외하고는 모두 NULL이 포함되어 있기때문에 NULL, NULL, NULL , 425에 대한 SUM이 진행이 되어 결과 값은 425가 나오게 됩니다.

결과) 425