SW/MySQL

MySQL : Group by : 각 그룹에서 최신 데이터 가져오기

얇은생각 2020. 3. 7. 19:30
반응형

MySQL : Group by : 각 그룹에서 최신 데이터 가져오기

 

Group By에서 마지막 레코드를 가져올 때 MySQL로 사용하는 방법을 살펴 보겠습니다. 예를 들어 이 테이블 세트를 보겠습니다.

id category_id post_title 
------------------------- 
1	1	Title 1 
2	1	Title 2 
3	1	Title 3
4	2	Title 4
5	2	Title 5 
6	3	Title 6

 

 

 

제목 3, 제목 5 및 제목 6인 각 범주에서 마지막 데이터를 얻을 수 있기를 원합니다. 범주별로 게시물을 가져 오려면 MySQL Group By 키워드를 사용합니다.

select * from posts group by category_id

 

 

 

그러나 이 쿼리에서 얻은 결과는 다음과 같습니다.

id category_id post_title
------------------------- 
1	1	Title 1 
4	2	Title 4 
6	3	Title 6

 

 

 

그룹 기준은 항상 결과 집합에서 그룹의 첫 번째 레코드를 반환합니다.

SELECT id, category_id, post_title 
FROM posts WHERE id IN ( 
	SELECT MAX(id) FROM posts GROUP BY category_id 
    );

 

 

 

 

각 그룹에서 ID가 가장 높은 게시물을 반환합니다.

id category_id post_title 
------------------------- 
3	1	Title 3 
5	2	Title 5
6	3	Title 6
반응형