> 개발-IT-인터넷/> SQL

[MSSQL] 최대값을 가진 Row들을 조회하는 방법

jini:) 2023. 8. 18. 15:49
728x90
반응형

MSSQL 작업하면서 최대값을 가지고 있는 Row들을 가지고 오고 싶었다.

같은 ID를 가진것들 중에서 NUM의 최대값을 구하는 방법을 알아보자.

 

반응형

 

group by 사용하는 방법
SELECT		T.ID, T.NUM
FROM		MYTABLE T
INNER JOIN (
	SELECT	ID, MAX(NUM) NUM
	FROM	MYTABLE
	GROUP BY ID
) Q ON T.ID = Q.ID AND T.NUM = Q.NUM

Group By와 SubQuery를 사용해서 ID와 MAX값을 가져온 뒤,

INNER JOIN으로 해당하는 ROW을 찾음.

* Group by는 해당하는 Row의 다른 필드의 값을 가지고 올 수 없음.

 

 

self left join 사용하는 방법
SELECT		T.*
FROM		MYTABLE T
LEFT JOIN 	MYTABLE Q ON T.ID = Q.ID AND T.NUM < Q.NUM
WHERE 		Q.NUM IS NULL;

Group by 사용 하지 않고 self left join을 통해 최대값을 가지고 온다.

Q.NUM이 NULL이면 T.NUM이 최대값이기때문에 최대값 추출 가능.

 

728x90
반응형