> 데이터 베이스 > MySQL 튜토리얼 > COUNT() OVER (PARTITION BY ...)가 SQL Server에서 DISTINCT 개수를 처리할 수 있나요?

COUNT() OVER (PARTITION BY ...)가 SQL Server에서 DISTINCT 개수를 처리할 수 있나요?

DDD
풀어 주다: 2025-01-03 20:04:42
원래의
828명이 탐색했습니다.

Can COUNT() OVER (PARTITION BY ...) Handle DISTINCT Counts in SQL Server?

파티션 함수를 사용한 고유 개수: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿