ホームページ >データベース >mysql チュートリアル >SQL Server パーティション内の個別値の累計を計算するにはどうすればよいですか?

SQL Server パーティション内の個別値の累計を計算するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-05 00:06:37778ブラウズ

How to Calculate a Running Total of Distinct Values in SQL Server Partitions?

PARTITION 関数 COUNT() OVER with DISTINCT

PARTITION 関数と COUNT() を使用して個別の値の累計を計算すると、次のようになります。 SQL Server では困難です。 DISTINCT キーワードは集計関数ではサポートされていますが、パーティション関数内では使用できません。この制限は、特に個別の値の累計を計算しようとする場合にイライラする可能性があります。

個別のカウントを計算するための従来の方法の 1 つは、相関サブクエリを使用することです。ただし、このアプローチは非効率的で、維持が難しい場合があります。

幸いなことに、dense_rank() を使用する簡単な解決策があります。

dense_rank() over (partition by [Mth] order by [UserAccountKey]) 
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc) 
- 1

この式は、各 UserAccountKey 内の個別の UserAccountKey の累計を計算します。月。これは、最初に値を昇順でランク付けし、次に降順でランク付けし、最後に 2 つのランクの合計から 1 を減算することによって機能します。このアプローチでは、重複する値を効果的に排除しながら、個別の値の現在カウントを提供します。

以上がSQL Server パーティション内の個別値の累計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。