> 데이터 베이스 > MySQL 튜토리얼 > PostgreSQL에서 각 고유 ID의 마지막 행을 검색하는 방법은 무엇입니까?

PostgreSQL에서 각 고유 ID의 마지막 행을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-01 09:06:11
원래의
190명이 탐색했습니다.

How to Retrieve the Last Row for Each Unique ID in PostgreSQL?

PostgreSQL에서 각 ID의 마지막 행 검색

데이터 작업을 할 때 다양한 데이터 세트에서 특정 정보를 추출해야 하는 경우가 많습니다. PostgreSQL의 경우 사용자는 각 고유 ID에 대한 최신 레코드를 얻어야 하는 시나리오에 직면할 수 있습니다.

시나리오

다음 표를 고려하세요.

id date another_info
1 2014-02-01 kjkj
1 2014-03-11 ajskj
1 2014-05-13 kgfd
2 2014-02-01 SADA
3 2014-02-01 sfdg
3 2014-06-12 fdsA

목표

목표는 새 데이터베이스에서 각 고유 ID에 대한 데이터의 마지막 행을 추출하는 것입니다. 표:

id date another_info
1 2014-05-13 kgfd
2 2014-02-01 SADA
3 2014-06-12 fdsA

해결책 1: Postgres의 DISTINCT ON 연산자 사용

Postgres의 DISTINCT ON 연산자를 사용하여 이 시나리오를 효율적으로 처리합니다.

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
로그인 후 복사

해결책 2: 윈도우 함수

데이터베이스 간 호환성을 위해 row_number()와 같은 윈도우 함수는 활용:

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by id;
로그인 후 복사

벤치마크는 일반적으로 창 기능 접근 방식이 하위 쿼리보다 빠르다는 것을 나타냅니다.

위 내용은 PostgreSQL에서 각 고유 ID의 마지막 행을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿