본문 바로가기

프로그래밍/MSSQL

[MSSQL] COMPUTE (별도의 결과 집합으로 출력)

반응형

 

 

 

 

 

 

 

 

 

COMPUTE

 

결과를 별도의 결과 집합으로 출력한다.

 

1
2
SELECT 컬럼명 FROM 테이블명 WHERE 조건
COMPUTE 집계함수(컬럼명)
cs

 

집계 함수 → SUM(합계), AVG(평균), MAX(최대), MIN(최소), COUNT(개수)

 

 

예제)

 

1
2
3
SELECT * FROM A WHERE 분류 = '음식'
SELECT SUM(금액) AS 'sum' FROM A WHERE 분류 = '음식'
SELECT AVG(금액) AS 'avg' FROM A WHERE 분류 = '음식'
cs

 

1
2
3
SELECT * FROM A WHERE 분류 = '음식'
COMPUTE SUM(금액)
COMPUTE AVG(금액)
cs

 

위의 두 쿼리 문의 결과는 동일하다.

 

 

 

1
2
SELECT * FROM A WHERE 분류 = '음식'
COMPUTE SUM(금액), AVG(금액)
cs

 

A   COMPUTE   COMPUTE SUM(금액), AVG(금액)
분류 내용 개수 금액   분류 내용 개수 금액   분류 내용 개수 금액
학용품 연필 1 400   음식 김밥 1 2000   음식 김밥 1 2000
음식 김밥 1 2000   음식 제육덮밥 1 4800   음식 제육덮밥 1 4800
음식 제육덮밥 1 4800   음식 제육덮밥 2 9600   음식 제육덮밥 2 9600
음식 제육덮밥 2 9600                    
학용품 지우개 3 1200   sum         sum avg    
학용품 샤프 2 800   16400         16400 5466    
기타 게임 1 100                    
          avg                
          5466                

 

 

참고

 

1
2
SELECT *, 개수*금액 AS 'sum' FROM A WHERE 분류 = '음식'
COMPUTE SUM(개수*금액)
cs

 

COMPUTE에서 단일 칼럼의 값이 아닌 '컬럼명*컬럼명'과 같은 수식값이 들어가면

SELECT에서 해당 수식이 포함되어야 한다.

 

 

 

 

COMPUTE BY

 

컬럼 별로 리스트화하고 COMPUTE 결과를 보여준다.

 

예제) 

 

1
2
3
SELECT * FROM A WHERE 분류 = '음식'
ORDER BY 내용
COMPUTE SUM(금액), AVG(금액) BY 내용
cs

 

A   COMPUTE BY
분류 내용 개수 금액   분류 내용 개수 금액
학용품 연필 1 400   음식 김밥 1 2000
음식 김밥 1 2000          
음식 제육덮밥 1 4800   sum avg    
음식 제육덮밥 2 9600   2000 2000    
학용품 지우개 3 1200          
학용품 샤프 2 800   분류 내용 개수 금액
기타 게임 1 100   음식 제육덮밥 1 4800
          음식 제육덮밥 2 9600
                 
          sum avg    
          14400 7200    

 

 

 

 

 

 

 

반응형