파티션 함수를 사용한 고유 개수: COUNT() OVER 대 DISTINCT
이 질문은 고유 개수를 계산할 때 SQL의 OVER 절을 사용하는 방법을 살펴봅니다. . 사용자는 특정 월 내의 고유 사용자 누계를 얻기 위해 DISTINCT 키워드와 함께 COUNT() OVER (PARTITION BY ...) 함수를 사용하려고 합니다. 그러나 이 접근 방식에는 오류가 발생합니다.
이 오류는 현재 SQL Server의 OVER 함수가 파티션 절 내에서 DISTINCT 키워드를 지원하지 않기 때문에 발생합니다. 결과적으로 사용자는 파티셔닝 중에 고유한 계산을 적용할 수 없습니다.
이 문제에 대한 해결책은density_rank() 함수를 활용하는 것입니다. 다음 표현식은 원하는 출력을 얻습니다.
dense_rank() over (partition by [Mth] order by [UserAccountKey]) + dense_rank() over (partition by [Mth] order by [UserAccountKey] desc) - 1
density_rank()를 두 번 적용하고 결과를 빼면 표현식은 매월 지정된 열의 고유 값 수를 효과적으로 계산합니다. 이 메소드는 원래 의도된 DISTINCT를 사용한 COUNT() OVER (PARTITION BY ...)와 동일한 기능을 제공합니다.
위 내용은 COUNT() OVER (PARTITION BY ...)가 SQL Server에서 DISTINCT 개수를 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!