>데이터 베이스 >MySQL 튜토리얼 >DISTINCT ON을 사용하여 PostgreSQL의 각 범주에 대한 최대 날짜가 있는 ID를 효율적으로 선택하려면 어떻게 해야 합니까?

DISTINCT ON을 사용하여 PostgreSQL의 각 범주에 대한 최대 날짜가 있는 ID를 효율적으로 선택하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-27 17:10:17482검색

How Can I Efficiently Select the ID with the Maximum Date for Each Category in PostgreSQL Using DISTINCT ON?

DisTINCT ON을 사용하여 PostgreSQL에서 범주별로 그룹화된 최대 날짜가 있는 ID를 선택합니다.

각 범주 내에서 최대 날짜가 있는 ID를 선택하려면, Postgres는 DISTINCT ON이라는 강력한 기능을 제공합니다. 다음은 이를 달성하기 위한 쿼리입니다.

SELECT DISTINCT ON (category)
       id  -- , category, date  -- any other column (expression) from the same row
FROM   tbl
ORDER  BY category, date DESC;

DISTINCT ON은 지정된 열을 기준으로 행을 구별하고 후속 행은 정렬 순서에 따라 필터링됩니다. DISTINCT ON은 각 범주 내에서 날짜의 내림차순으로 행을 정렬하여 각 범주의 최대 날짜를 제공합니다.

주의: NULL 값이 발생할 수 있으므로 날짜 열이 NULL이 아닌지 확인하세요. 정렬 순서에 영향을 줍니다. 필요한 경우 NULLS LAST를 추가하여 NULL 값을 처리할 수 있습니다.

DISTINCT ON은 단순성과 효율성을 제공합니다. 그 성능은 특히 소규모 데이터 세트에 효과적입니다. 범주당 행 수가 많은 대규모 데이터 세트의 경우 "관련 스택 오버플로 질문" 섹션에 언급된 것과 같은 대체 접근 방식이 더 적합할 수 있습니다.

위 내용은 DISTINCT ON을 사용하여 PostgreSQL의 각 범주에 대한 최대 날짜가 있는 ID를 효율적으로 선택하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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