問題タブ [dense-rank]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3118 参照

sql-server-2008 - GROUPBYでRANKを試みるのに助けが必要

生徒を所属するホームグループごとにランク付けするのに苦労しています。

偽のデータの例。

私の出力は次のとおりです

DENSE_RANKを使用しようとしていますが、これをSINGLE HomeGroup(例:homegroup = 1)に対して実行すると正常に機能しますが、すべてのホームグループでこれを実行する方法がわかりません。

サブクエリを持つUpdateクエリが必要だと思います...そしてこのサブクエリには独自のサブクエリがあります...??

私はかなり混乱しています:(そして、頭に銃を持っていない限り、使用を拒否する邪悪なカーソルについて考え続けています(「集合」表記で正しく処理できると信じているため)。

0 投票する
2 に答える
2570 参照

sql - SQL Server 2000 の Dense_Rank() 代替?(セット ベース)

実は、私は給与ランクに基づいて従業員を見つける仕事をしています。

だから私は Dense_Rank() を使って答えを得ました。

最初は、SQL SERVER 2005 で解決するように言われました。

その後、要件が変更され、SQL SERVER 2000 でもクエリを実行する必要があるとのことでした。

while ループを使用して解決しました。

しかし、彼らは、SET BASED アプローチを使用したソリューションを受け入れると言っています。

どうやってするか?

前もって感謝します

0 投票する
2 に答える
3798 参照

mysql - MySQLのテーブルから単一の行を結合します

私は2つのテーブルplayersとを持っていscoresます。

次のようなレポートを生成したいと思います。

現在、私のクエリは次のようになっています。

戻るs.points行に関連付けられているが必要です。min(s.date)それはこのクエリで起こっていますか?つまりs.points、結合された行の正しい値を取得していることをどのように確認できますか?

補足:これは、MySQLの密なランキングの欠如に何らかの形で関連していると思います。ここでの最善の回避策は何ですか?

0 投票する
1 に答える
86 参照

sql-server - ランキング機能の構造

ランキング関数のDENSE_RANK()関数とその働きをよく知っています。しかし、私は常にこの関数の名前を書くだけで、暗黙のうちにその仕事をするので、明示的にどのように機能するかを見ることができず、T_SQL 言語でこの関数内の操作を行う構造を見るのが好きです。それを手伝ってくれませんか。

0 投票する
1 に答える
253 参照

mysql - MySQL でこれら 2 つのレポートを生成するにはどうすればよいですか?

私のスキーマ

次のテーブルがあります

2 つのレポートを作成する必要があります。

1) トッププレイヤー

直近 4 か月間の最高の成績を収めたプレーヤー (各プレーヤーのすべてのスコアの合計)。各月のトップ 10 を表示します。

2) トップユーザー:

直近 4 か月間の最高のパフォーマンスを行ったユーザー (各ユーザーの各プレーヤーのすべてのスコアの合計)。各月のトップ 10 を表示します。

MySQL ビュー ヘルパー

参加する目的で、レポートの月を照会するのに役立つ保存されたビューがあります。常に最新の 4 か月が返されます。

問題

たとえば、レポート #1 では、合計を非常に簡単に取得できます。

ただし、単純に上位 40 件の結果を取得して 4 か月に分散することはできません。これは、毎月 10 件を保証するものではないためです。

質問

クエリを変更して、毎月 10 件を取得するにはどうすればよいですか?

0 投票する
2 に答える
509 参照

oracle - OracleでN行を選択

次のデータがあるとします。

ページネーションをサポートするグリッドに表示されるように、値DESCで並べ替えられた個別キーを選択したいと思います。

希望ランク欄に表示されている値としてランクを生成する方法がわかりません。データセットを正しくページングできるようにするため

DENSE_RANK()OVER(ORDER BY value)を使用しようとすると、結果は次のようになります。

「ランク1から2」の最初の2つのキーを選択しようとすると、3つのキーが返されます。そして、これは必要なページネーションメカニズムを台無しにします。

何か案は?

ありがとう

0 投票する
2 に答える
11066 参照

sql - SQL DENSE_RANK を使用して重複を判別する

OrderID列を無視して、同じ数量のすべての注文を見つけようとしているデータの例を次に示します

そのため、SQLでDENSE_RANK関数を使用しました

以下のデータを取得するには

そのため、ランキングに基づいて、異なる orderID で同じ数量を持つレコードを除外し、それらを 1 つとして扱うことができました。これまでのところ、すべてが順調で、満足しています。しかし、別のクレイジーな要件の 1 つは、この形式の集計は数量の最初の変更に対してのみ実行する必要があるということです。たとえば、上記のデータがたまたま下のような場合

同じ SQL が結果を生成します

しかし、私は結果が必要です

最初の数量変更後は、すべてのレコードのランキングが 1 のままであることに注意してください。

上記の動作を得るために SQL を微調整することは可能ですか?

提案をありがとう。

0 投票する
2 に答える
1041 参照

sql-server - SQL Server: DENSE_RANK ()

tableA があります: (ID int, batch int, new_batch int)

ID とバッチは既に入力されています。

ここで、次の select ステートメントに従って New_batch にデータを入力します。

  1. この select ステートメントでは、バッチ = 02 とバッチ =5 が得られます。ここで、select ステートメントの結果が最初に順序付けられ (batch02、次に batch05)、残りのデータが select ステートメントではなくバッチの昇順で順序付けられるように、new_batch を割り当てたいと考えています。(バッチ 1,3,4) 結果は次のようになります。

ありがとう。PS: DENSE_RANK() は使用できますが、ハードコーディングしないでください !!

0 投票する
1 に答える
750 参照

sql-server-2008 - SQL Serverが最初にランク付けされますか?

編集-私よりもはるかにランクの高い2人の男が私の質問を誤解したので、私の必要性を言い換えます、それで私はこれをより良くする必要があります...

以下のようなテーブルがあります。'ison'列が1である'sec1'行の最初のグループのすべての行を選択する必要があります。したがって、クエリは最初に'bbb'行を返す必要がありますが、すべての行をison=0に設定してから'ccc'行をison=1にすると、結果セットに'ccc'の2行が含まれます。誰かが私のランク/トップを手伝ってくれますか?MSSQL2008を使用します。

ありがとう。

0 投票する
1 に答える
1001 参照

sql-server - SQL Server の密なランク/内部結合の概念の明確化?

結合を操作するときの密なランク関数の動作を明確にしたいと考えています。ここで以前の私の投稿に対する優れた解決策を得ましたSQL Server recursive cte help want解決策を見ると、密なランクと内部結合を使用して、欠落しているデータ ポイントでブレークを使用してデータを分割します。

だから:私が解決策をどのように読んだかに基づいて、内部結合の場合、密なランクには、右側ではなく左側にあるランキング行が含まれます。これの小さなテストを設定しましたが、その動作を再現できません。たとえば、クエリを実行し、cte で基本的な select ステートメントを使用すると、元のクエリのように再度パーティション分割せずに、1/5/12 のデータ ポイント A が欠落している場合、次のようになります。

私の現在の理解に基づいて、結合は tblDailyPricingAndVol の日付の一致を返さないため、上記の密なランク値は最後の 2 つのレコードで 2 から 3 になるだけです。前もって感謝します。