Maison > base de données > tutoriel mysql > COUNT() OVER (PARTITION BY ...) peut-il gérer les comptes DISTINCT dans SQL Server ?

COUNT() OVER (PARTITION BY ...) peut-il gérer les comptes DISTINCT dans SQL Server ?

DDD
Libérer: 2025-01-03 20:04:42
original
801 Les gens l'ont consulté

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

Compte distinct avec fonctions de partition : COUNT() OVER vs DISTINCT

Cette question explore l'utilisation de la clause OVER de SQL dans le calcul des comptes distincts . L'utilisateur tente d'utiliser la fonction COUNT() OVER (PARTITION BY ...) avec le mot-clé DISTINCT pour obtenir un total cumulé d'utilisateurs uniques au cours d'un mois donné. Cependant, cette approche se heurte à une erreur.

L'erreur survient car les fonctions OVER de SQL Server ne prennent actuellement pas en charge le mot-clé DISTINCT dans la clause de partition. Par conséquent, l'utilisateur ne peut pas appliquer un comptage distinct pendant le partitionnement.

Une solution à ce problème consiste à utiliser la fonction dense_rank(). L'expression suivante obtient le résultat souhaité :

dense_rank() over (partition by [Mth] order by [UserAccountKey])
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc)
- 1
Copier après la connexion

En appliquant dense_rank() deux fois et en soustrayant les résultats, l'expression compte effectivement le nombre de valeurs distinctes dans la colonne spécifiée au cours de chaque mois. Cette méthode fournit la même fonctionnalité que la méthode COUNT() OVER (PARTITION BY ...) initialement prévue avec DISTINCT.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal