최대값 구하기
MSSQL에서 데이터중 가장 큰 최댓값을 구하는 방법에 대해 살펴보겠습니다
전체 데이터중 가장 큰 값을 알고 싶을 수도 있고
특정 구분칼럼별로 가장 큰 값들을 알고 싶을 수 있습니다 (학급별 성적 1등 등..)
이럴 때 MAX함수를 통해 최댓값을 구할 수 있습니다
기본문법
SELECT MAX(COLUMN)
FROM TABLE
/*
TABLE 내에서 가장 큰 COLUMN의 값을 출력합니다
*/
SELECT COLUMN1
, MAX(COLUMN2)
FROM TABLE
GROUP BY COLUMN1
/*
TABLE내에서 COLUMN1별로 가장큰COLUMN2 값을 출력합니다
*/
MAX는 그룹함수 이기 때문에, GROUP BY 되지 않은 일반칼럼과는 함께 조회할 수 없습니다
💡그룹함수: 그룹별로 데이터를 조회하는 데 사용되는 함수 MAX(최대값), MIN(최소값) 등이 있습니다
GROUP BY로 GROUP을 지정해 주되 지정하지 않은 경우 전체데이터를 그룹으로 조회합니다
그룹별로 가장 큰 값 구하기
MAX함수는 그룹함수답게 그룹별로 가장 많이 쓰입니다
예를 들어 학급별로 가장 높은 성적이 몇 점인지 알고 싶다면 다음과 같이 작성할 수 있습니다
SELECT CLASS
, MAX(GRADE_SCORE) AS MAX_GRADE_SCORE
FROM STUDENT_SCORE
/*
STUDENT_SCORE: 학생정보(성적포함) 데이터가 담긴 테이블
CLASS: 학급정보 컬럼
GRADE_SCORE: 성적정보 컬럼
학급(CLASS)별로 가장높은 성적점수(GRADE_SCORE)가 출력됩니다
*/
위에서 학급당 성적정보를 조회했는데요
추가적으로 가장 높은 성적을 거둔 학생의 정보를 조회하려면 다음과 같이 작성할 수 있습니다
SELECT A.*
FROM STUDENT_SCORE A
INNER JOIN (
SELECT CLASS
, MAX(GRADE_SCORE) AS MAX_GRADE_SCORE
FROM STUDENT_SCORE
GROUP BY CLASS
) B ON (B.CLASS = A.CLASS AND B.MAX_GRADE_SCORE = A.GRADE_SCORE)
/*
STUDENT_SCORE: 학생정보(성적포함) 데이터가 담긴 테이블
CLASS: 학급정보 컬럼
GRADE_SCORE: 성적정보 컬럼
학급(CLASS)별로 가장높은 성적점수(GRADE_SCORE)를 가진 학생정보들이 출력됩니다
*/