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

PostgreSQL에서 각 ID의 마지막 행을 추출하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-28 15:02:11590검색

How to Extract the Last Row for Each ID in PostgreSQL?

Postgresql에서 각 ID의 마지막 행 추출

id, date, another_info라는 열이 있는 데이터세트를 생각해 보세요. 목표는 각 고유 ID에 대한 마지막 정보(행)를 추출하는 것입니다.

Postgresql에서 이를 수행하기 위해 일반적으로 두 가지 방법이 사용됩니다:

Distinct On Operator

Postgresql은 특정 열의 고유한 값만 반환되도록 지정할 수 있는 고유한 연산자를 제공합니다. 이 경우 연산자를 다음과 같이 사용할 수 있습니다.

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;

이 쿼리는 각 고유 ID의 마지막 인스턴스만 날짜별로 내림차순으로 반환되도록 보장합니다.

창 기능

또는 창 기능을 사용하여 동일한 결과를 얻을 수도 있습니다. 창 함수를 사용하면 분할된 행 집합에 대해 계산이나 집계를 수행할 수 있습니다. 이 경우 다음 쿼리를 사용할 수 있습니다.

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;

이 쿼리는 row_number() 함수를 사용하여 각 ID 파티션 내의 각 행에 일련 번호를 할당합니다. where 절은 가장 높은 rn 값을 가진 행(즉, 각 ID의 마지막 행)만 포함하도록 결과를 필터링합니다.

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

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