[MSSQL] 최소값, 최대값 구하기 (MIN, MAX 함수)

SQL Server에서 최솟값과 최댓값을 구하기 위해선는 MIN, MAX 함수를 사용하면 됩니다. MIN, MAX 함수는 집계 함수이며 GROUP BY 절과 함께 많이 사용됩니다. OVER 절과 함께 사용하면 분석 함수의 역할을 하며, 조금 더 다양한 쿼리문을 작성할 수 있습니다. 아래의 예제를 참고하여 첨부된 파일을 다운로드하여서 직접 연습해 보세요.

 

MSSQL 최솟값, 최댓값 구하기

목차
  1. 전체 데이터 최솟값, 최댓값 구하기
  2. 그룹별 최솟값, 최댓값 구하기 (GROUP BY 절)
  3. 분석함수를 사용하여 최솟값, 최댓값 구하기 (OVER 절)

 

전체 데이터 최솟값, 최댓값 구하기

최솟값 구하기 (MIN)

SELECT MIN(sal)
  FROM emp
 WHERE job = 'SALESMAN'

 

 

직업(job)이 "SALESMAN"인 직원의 최저급여(sal)를 조회한다.

MIN() 함수는 최솟값을 반환한다.

 

최댓값 구하기 (MAX)

SELECT MAX(sal)
  FROM emp
 WHERE job = 'SALESMAN'

 

 

직업(job)이 "SALESMAN"인 직원의 최고 급여(sal)를 조회한다.

MAX() 함수는 최댓값을 반환한다.

 

최솟값, 최댓값  동시에 구하기

SELECT MIN(sal) AS min_sal
     , MAX(sal) AS max_sal
  FROM emp
 WHERE job = 'SALESMAN'

 

 

직업(job)이 "SALESMAN"인 직원의 최저급여와 최고 급여를 조회한다.

집계 합수(MIN, MAX, SUM, COUNT..)는 SELECT 절에 동시에 사용할 수 있다.

 

 

GROUP BY 절을 사용하지 않으면 집계 함수(MIN, MAX)만 SELECT 절에 사용할 수 있으며, 일반 칼럼(job)을 같이 사용하기 위해서는 GROUP BY 절을 사용해서 그룹으로 집계를 해야 한다.

 

그룹별 최솟값, 최댓값 구하기 (GROUP BY 절)

그룹별 최솟값 구하기 (MIN)

SELECT job
     , MIN(sal) AS min_sal
  FROM emp
 GROUP BY job

 

 

직업(job) 별로 최저급여(sal)를 조회한다.

 

그룹별 최댓값 구하기 (MAX)

SELECT job
     , MAX(sal) AS max_sal
  FROM emp
 GROUP BY job

 

 

직업(job) 별로 최고 급여(sal)를 조회한다.

 

그룹별 최솟값, 최댓값  동시에 구하기

SELECT job
     , MIN(sal) AS min_sal
     , MAX(sal) AS max_sal
  FROM emp
 GROUP BY job

 

 

직업(job) 별로 최저급여와 최고 급여를 조회한다.

 

분석함수를 사용하여 최솟값, 최댓값 구하기 (OVER 절)

조회된 데이터 전체에서 최솟값, 최댓값 구하기

SELECT empno  
     , ename
     , job
     , sal
     , MIN(sal) OVER() AS min_sal
     , MAX(sal) OVER() AS max_sal
  FROM emp
 WHERE job = 'SALESMAN'

 

 

데이터를 그룹으로 묶지 않고 조회된 데이터에서 최솟값과 최댓값을 구하여 표시할 수 있다.

OVER 절과 함께 MIN, MAX 함수를 사용하면 분석함수의 역할을 한다.

 

조회된 데이터 전체에서 그룹별(PARTITION BY) 최솟값, 최댓값 구하기

SELECT empno  
     , ename
     , job
     , sal
     , MIN(sal) OVER(PARTITION BY job) AS min_sal
     , MAX(sal) OVER(PARTITION BY job) AS max_sal
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')

 

 

OVER 절에서 PARTITION BY 절을 함께 사용하면 조회된 데이터에서 그룹별로 최솟값과, 최댓값을 구하여 표시할 수 있다. 

 

GROUP BY 절과 OVER 절의 용도가 조금 헷갈릴 수 있지만, 조금만 이해를 하면 쿼리문을 아주 효율적으로 작성할 수 있습니다. GROUP BY 절은 SELECT 절에 그룹 칼럼만 작성할 수 있지만 OVER 절을 사용하면 SELECT 절에 원하는 칼럼을 자유롭게 작성할 수 있는 장점이 있습니다.

예제쿼리(테이블포함).txt
0.00MB

 

 

[MSSQL] GROUP BY 절 사용법 (그룹별 집계)

SQL Server에서 GROUP BY 절은 특정 칼럼을 기준으로 집계 함수를 사용하여 건수(COUNT), 합계(SUM), 평균(AVG) 등 집 계성 데이터를 추출할 때 사용한다. GROUP BY 절에서 기준 칼럼을 여러 개 지정할 수 있으

gent.tistory.com

 

댓글

Designed by JB FACTORY