데이터 작업을 할 때 다양한 데이터 세트에서 특정 정보를 추출해야 하는 경우가 많습니다. 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 |
Postgres의 DISTINCT ON 연산자를 사용하여 이 시나리오를 효율적으로 처리합니다.
select distinct on (id) id, date, another_info from the_table order by id, date desc;
데이터베이스 간 호환성을 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!