SQL ServerでRANK()を使用する方法
2023-09-05 18:20:33
質問
私は
RANK()
を SQL Server で使用することができません。
以下は私のコードです。
SELECT contendernum,
totals,
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
FROM (
SELECT ContenderNum,
SUM(Criteria1+Criteria2+Criteria3+Criteria4) AS totals
FROM Cat1GroupImpersonation
GROUP BY ContenderNum
) AS a
そのクエリの結果は
contendernum totals xRank
1 196 1
2 181 1
3 192 1
4 181 1
5 179 1
私の望む結果は何か。
contendernum totals xRank
1 196 1
2 181 3
3 192 2
4 181 3
5 179 4
を基準にした順位付けをしたい。
totals
. のように同じ値がある場合
181
のように同じ値があれば、2つの数値は同じ
xRank
.
どのように解決するのですか?
変更してください。
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
になります。
RANK() OVER (ORDER BY totals DESC) AS xRank
この例を見てください。
SQL Fiddleデモ
の違いも見ておきましょう。 RANK (Transact-SQL) と DENSE_RANK (トランザクト SQL) :
<ブロッククオートランク (トランザクトSQL)
2つ以上の行が同順位であった場合、同順位の行はそれぞれ同じ を受け取ります。たとえば、2 人のトップセールスマンが同じ SalesYTD 値を持つ場合、2 人とも 1 位になります。 の値が同じであれば、両者とも1位となります。次に高い SalesYTD 値を持つ営業担当者は 3 位にランクされます。 の行は、3 位にランクされます。 より上位にランクされます。したがって、RANK関数は必ずしも連続した整数を返すとは限りません。 連続した整数を返すとは限りません。
DENSE_RANK (トランザクト-SQL)
結果セットのパーティション内の行の順位を、順位にずれがないように返します。 行の順位を返します。行のランクは、1+当該行の前にある別個のランクの数です。 の数を加えたものです。
関連
-
[解決済み] データベース 'tempdb' で CREATE TABLE 権限が拒否されました。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 更新時のSqlエラー : UPDATE ステートメントが FOREIGN KEY 制約と競合しています。
-
[解決済み] パーセント値を保持するための適切なデータ型?
-
[解決済み] 特別なプリンシパルdbo.を使用することはできません。エラー 15405
-
[解決済み] SSISで新しいレコードを挿入する前に、宛先テーブルを空にするにはどうすればよいですか?
-
[解決済み] SQL Server : ログインに成功しましたが、「データベース [dbName] にアクセスできません。(ObjectExplorer) "と表示されました。
-
[解決済み] sp_addrolememberとalter user with default schemaの違いは何ですか...?
-
[解決済み] SQL Serverでマテリアライズド・ビューを作成する方法は?
-
[解決済み] SQL Serverでdatetimeを切り捨てるにはどうすればよいですか?
-
[解決済み] MS SQL Serverで数値をパーセントでフォーマットする
-
[解決済み] スカラー変数を宣言する必要があります。