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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-01 09:06:11199검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.