[解決済み] パーティション関数 COUNT() DISTINCTでOVER可能
2022-11-06 20:54:55
質問
異なるNumUsersのランニングトータルを取得するために、以下のように書こうとしています。
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Management Studioは、このことをあまり快く思っていないようです。このエラーは
DISTINCT
キーワードを削除するとエラーはなくなりますが、その場合、個別のカウントにはなりません。
DISTINCT
はパーティション関数内では不可能なようです。
識別カウントを見つけるにはどうしたらよいでしょうか。もっと
伝統的な
メソッドを使用しますか?
もう少し調べてみると、おそらくこれらの
OVER
関数が Oracle とは異なる動作をするため、これらの関数を
SQL-Server
で使用できないという点で異なります。
ここにライブの例を追加しました。 SQLfiddle で、パーティション関数を使用して合計を計算する例を追加しました。
どのように解決するのですか?
非常に簡単な解決策があります。
dense_rank()
dense_rank() over (partition by [Mth] order by [UserAccountKey])
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc)
- 1
これはまさにあなたが求めていたものを与えてくれるでしょう。各月における個別のUserAccountKeyの数です。
関連
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
[解決済み] による分割の和
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] 文字列の一部をUPDATEおよびREPLACEする。
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] Count()で条件を指定することは可能ですか?
-
[解決済み】複数列のDISTINCTをカウントする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
[解決済み] SQL Serverで実行中の合計を計算する
-
[解決済み] テーブルネーミングのジレンマ:単数形と複数形の名前【非公開
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] SQL Server の VARCHAR/NVARCHAR 文字列に改行を挿入する方法
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] 項目xにアクセスできるように文字列を分割するにはどうすればよいですか?
-
[解決済み] SQLサーバーで行を列に効率的に変換する