MSSQL 합계 구하기 SUM

합계 구하기

MSSQL에서 데이터의 합계를 구하는 방법에 대해 포스팅하겠습니다
전체데이터의 합계 또는 특정칼럼을 기준하여 그룹별로 합계를 알고 싶을 수 있습니다
이럴 때 SUM함수를 이용하여 합계를 구할 수 있습니다.

SUM함수 기본문법

SELECT SUM(COLUMN1)
  FROM TABLE
/*
    TABLE내 모든 COLUMN1 데이터의 합계를 출력합니다
*/

SELECT COLUMN1
     , SUM(COLUMN2)
  FROM TABLE
/*
    TABLE내 COLUMN1의 값 별로 COLUMN2의 합을 출력합니디
*/

SUM은 그룹함수 이기 때문에 GROUP BY 되지 않은 칼럼과는 함께 조회될 수 없습니다

💡그룹함수: 그룹별로 데이터를 조회하는 데 사용되는 함수 AVG(평균값), MIN(최소값) 등이 있습니다
GROUP BY로 GROUP을 지정해 주되 지정하지 않은 경우 전체데이터를 그룹으로 조회합니다
💡 SUM함수는 NULL데이터를 무시하고 계산합니다. NULL데이터를 무시하고 싶지 않다면 ISNULL이나
COALESCE 함수를 사용하여 데이터를 치환하여야 합니다.

예시

주식의 가치에 관한 예시로 쉽게 이해해 보겠습니다
보유한 주식들의 가격 총합계, 사람별 보유주식 가격합계 등을 구해보겠습니다

예시용 테이블

 NAME STORK_NAME STORK_PRICE
 홍길동 삼성전자 80,000
 홍길동 현대 자동차 200,000
 강감찬 삼성 바이오 로직스 700,000
 강감찬 NAVER 400,000
 장보고 삼성전자 80,000
 장보고 현대 자동차 200,000
 장보고 삼성 바이오 로직스 700,000
테이블이름: STORK_INFO
< 칼럼설명 >
NAME: 주식소유자 이름
STORK_NAME: 주식명
STORK_PRICE: 주식 가격

보유한 주식의 가격 총합계 구하기

SELECT SUM(STORK_PRICE) AS SUM_STORK_PRICE
  FROM STORK_INFO
/*
    STORK테이블내 모든STORK_PRICE칼럼 데이터들의 합을 출력
*/

🎉결과🎉

 SUM_STORK_PRICE
 2,360,000

모든 STORK_PRICE 칼럼 데이터의 합
2360000 = (80000 + 200000 + 700000 + 400000 + 80000 + 200000 + 700000)


사람별로 보유한 주식의 가격 합계 구하기

SELECT NAME
     , SUM(STORK_PRICE) AS SUM_STORK_PRICE
  FROM STORK_INFO
 GROUP BY NAME
/*
    STORK테이블내 NAME데이터 그룹별로
    STORK_PRICE칼럼 데이터들의 합을 출력
*/


🎉결과🎉

 NAME SUM_STORK_PRICE
 홍길동 280,000
 강감찬 1,100,000
 장보고 980,000

홍길동: 280000 = (80000 + 200000)
강감찬: 1100000 = (400000 + 700000)
장보고: 980000 = (80000 + 200000 + 700000)