mysql 그룹화 질문입니다 0 1 2,923

by 성수다 [MySQL] groupBy [2023.12.30 17:46:02]


 

기준일자 이름 가격 등록날짜
20231228 김철수 50000원 2023-12-28 10:48:21
20231229 김철수 120000원 2023-12-28 15:12:10
20231229 김영희 1215155원 2023-12-29 11:30:25

이런 테이블이 있는데

이름으로 그룹화를 시켜야하는데 기준일자가 같으면 더 최신 날짜로 가져와야 합니다

select max(기준날짜), 이름, 가격, 등록날짜

from table

group by 이름 

으로 쿼리를 날리게 되면 

20231229 김철수 50000원 2023-12-28 10:48:21

20231229 김영희 1215155원  2023-12-29 11:30:25

이렇게 결과가 나오는데  아래와 같이 나오게 하는 방법이 뭘까요 ? ㅠㅠ

20231229 김철수 120000원 2023-12-28 15:12:10

20231229 김영희 1215155원  2023-12-29 11:30:25 

 

by pajama [2023.12.31 01:29:50]

ROW_NUMBER 함수로 가능하네요~

 

select * 
from (
select 기준일자, 이름, 가격, 등록날짜, row_number() over (partition by 이름 order by 등록날짜 desc) rn from table
)
where rn = 1

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입