SQL 데이터베이스에서 각 그룹에서 상단 행 추출
데이터 그룹화 및 분석은 데이터베이스 관리의 기본입니다. 종종 각 그룹 내에서 상단 행 (예 : 가장 최근의 항목)을 식별해야합니다. 이 기사는 SQL을 사용하여 효율적으로이를 달성하는 방법을 보여줍니다.
창 함수 활용
SQL 은이 작업에 전용 집계 기능을 제공하지 않지만 창 함수는 우아한 솔루션을 제공합니다. 이러한 기능은 정의 된 범위 내의 행 세트에서 작동하여 데이터 서브 세트에서 계산 및 집계를 가능하게합니다.
"DocumentId," "상태"및 "DateCreated"열이있는 "DocumentStatusLogs"라는 테이블을 고려하십시오. 각 문서의 최신 상태를 검색하려면이 SQL 쿼리를 사용하십시오.
공통 테이블 표현식 (CTE) "RankEdLogs"는
를 사용하여 "dateCreated"(하강)에 의해 순서대로 각 "DocumentID"파티션 내에서 행을 순위합니다. 메인 쿼리는 가있는 행만 선택하고 각 그룹의 상단 행을 효과적으로 반환합니다.
정규화 및 데이터 무결성
원래 질문은 데이터베이스 정규화에도 영향을 미칩니다. 예제 테이블 ( "DocumentStatusLogs")은 상태 변경 기록을 유지합니다. 이 역사를 유지하는 것은 시간이 지남에 따라 변화를 추적하는 데 유리합니다. 그러나 최신 상태에 즉시 액세스 해야하는 경우 "CurrentStatus"열을 "CurrentDocuments"테이블에 추가하고 트리거를 사용하여 업데이트하십시오. 이를 위해서는 데이터 일관성을 보장하고 이상을 피하기 위해 신중한 관리가 필요합니다.
창 함수를 결합하고 데이터 정규화에 대한 사려 깊은 고려를 통해 SQL 데이터베이스의 각 그룹의 상단 행을 효과적으로 검색 할 수 있습니다.
위 내용은 SQL 데이터베이스에서 각 그룹의 상단 행을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!