집 >데이터 베이스 >MySQL 튜토리얼 >DISTINCT ON을 사용하여 PostgreSQL의 각 범주에 대한 최대 날짜가 있는 ID를 효율적으로 선택하려면 어떻게 해야 합니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!