본문 바로가기
데이터베이스[DB]/MSSQL

[MSSQL] MAX, MIN ( 집계함수 )

by 낭만의개꿈 2024. 3. 27.

 

SQL 에서 기본적으로 많이 사용하는 집계함수로 MAX, MIN 이 있다. 데이터의 최대값이나 최소값을 구하기 위해 주로 사용되며, Group by 와 함께 사용되면서 좀 더 내가 원하는 데이터 값을 추출하는 데 용이하게 사용된다. 오늘은 기초 집계함수인 MAX, MIN 을 함께 확인하도록 하자.

TEST Table & Data Create
CREATE TABLE #tmp_data
(
	cust_id int,
	cust_name varchar(10),
	cust_date varchar(10),
	cust_eng int,
	cust_math int
)

INSERT INTO #tmp_data VALUES (1,'홍길동',NULL,70,85)
INSERT INTO #tmp_data VALUES (2,'홍길동','2024-02-01',75,95)
INSERT INTO #tmp_data VALUES (3,'홍길동','2024-03-01',80,NULL)
INSERT INTO #tmp_data VALUES (4,'임꺽정','2024-01-01',100,80)
INSERT INTO #tmp_data VALUES (5,'임꺽정','2024-02-01',97,83)
INSERT INTO #tmp_data VALUES (6,'임꺽정','2024-03-01',NULL,78)
INSERT INTO #tmp_data VALUES (7,'임꺽정','2024-04-01',88,92)

#tmp_data 데이터 생성 조회

 

영어점수 최고점 구하기 ( MAX 값 가져오기 )
SELECT MAX(cust_eng)AS cust_eng
  FROM #tmp_data

 

max결과값

 

수학점수 최저점 구하기 ( MIN 값 가져오기 )
SELECT MIN(cust_math) AS cust_math
  FROM #tmp_data

 

min 결과값

 

단순히 MAX나 MIN 값만을 조회하게 되면 위와 같이 값만을 조회할 수 있다. 하지만 해당 값의 전체 값을 확인하기 위해서는 Group by 절이 꼭 필요하다.

SELECT  MAX(cust_eng)AS cust_eng,
		MIN(cust_math) AS cust_math,
		cust_name
  FROM #tmp_data

 

group by 없이 max, min 조회

 

Group by 절 없이 MAX나 MIN 을 조회하려고 하면 이와 같은 오류가 발생하면서 값을 정상적으로 조회할 수 없다.

 

학생별 영어 최고점 구하기 ( Group by MAX )
SELECT  MAX(cust_eng)AS cust_eng,
		cust_name
  FROM #tmp_data
 GROUP BY cust_name

Max Group by 조회

 

이와 같이 max, min 은 group by 와 함께 처리 되었을 때에 내가 원하는 결과값을 추출할 수 있다.