집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 각 ID의 마지막 행을 추출하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!