sanguk.dev
작성완료
MySQL GROUP BY 각 그룹 마지막 데이터 조회

MySQL GROUP BY 각 그룹 마지막 데이터 조회

MySQL에서 각 그룹의 마지막 데이터를 조회하기 위해, 서브쿼리를 사용하여 각 이름별 최대 날짜를 선택하고, 해당 이름과 값을 반환하는 쿼리를 작성하였다. 결과적으로 A는 21, B는 11, C는 18의 값을 가진다.

MySQL

테이블 (tb_test)

sql
SELECT * FROM tb_test;
IDNAMEVALUEDATE
1A142023-05-26 10:52:22
2A262023-05-26 10:52:25
3B92023-05-26 10:52:29
4C252023-05-26 10:52:32
5C182023-05-26 10:52:35
6B112023-05-26 10:52:37
7A212023-05-26 10:52:39

쿼리

sql
SELECT NAME, VALUE
FROM tb_test
WHERE (NAME, DATE) IN (
  SELECT NAME, MAX(DATE) AS DATE
  FROM tb_test
  GROUP BY NAME
)
ORDER BY NAME;

결과

NAMEVALUE
A21
B11
C18