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)
영어점수 최고점 구하기 ( MAX 값 가져오기 )
SELECT MAX(cust_eng)AS cust_eng
FROM #tmp_data
수학점수 최저점 구하기 ( MIN 값 가져오기 )
SELECT MIN(cust_math) AS cust_math
FROM #tmp_data
단순히 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 )
SELECT MAX(cust_eng)AS cust_eng,
cust_name
FROM #tmp_data
GROUP BY cust_name
이와 같이 max, min 은 group by 와 함께 처리 되었을 때에 내가 원하는 결과값을 추출할 수 있다.
'데이터베이스[DB] > MSSQL' 카테고리의 다른 글
[MSSQL] REPLACE - 문자열 치환 함수 (0) | 2024.06.24 |
---|---|
[MSSQL] 특정 컬럼명이 포함된 테이블 검색 (0) | 2024.06.14 |
[MSSQL] 프로시저 내부의 문자열 검색 (0) | 2024.06.13 |
[MSSQL] SUM, ISNULL (0) | 2024.03.28 |
[MSSQL] SET ROWCOUNT n (0) | 2024.03.19 |
[MSSQL] 전체테이블, 프로시저, 인덱스 등 생성 스크립트 (0) | 2024.03.17 |
[MSSQL] CONVERT - 문자열날짜변환 (0) | 2024.03.16 |
[MSSQL] MAX ROW 가져오기 (최대값을 가진 ROW들을 가져오는 법) (0) | 2024.03.15 |