問題タブ [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 に答える
449 参照

sql - 連続した日付のランキング

連続未払いの金額を取得する必要があります。

これからわか​​るように、id 2 から適切な数の未払いが得られます。最初の未払いは 3 月で、2 回目は 4 月です。ID 3 も問題ありません。後で彼を除外するためです。そこからランキングを開始する必要があります。彼が最後の支払いを支払うと、プロセスが再び開始されます。

アイデアは、複雑なクエリを使用せずにシンプルに保つことです。密なランクと同じことをする必要がありますが、日付が連続している場合のみです

例が十分に明確であることを願っています。

編集:これは私が現在のクエリから得たものです:

そして、私が取得したいのはこれです:

max(rank) を取得してユーザーの現在の未払い回数を確認したい場合、ID には 1 回の未払い、ID 2 には 2 回の連続した未払い、ID 3 には 0 回の未払いがあります。これは、4 回連続して未払いが発生した場合、ユーザーが解約されたと見なす必要があるためです。

編集:2013/06/29

誰かが別のフォーラムで完璧な解決策を教えてくれました: https://forums.oracle.com/thread/2555552

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

sql - SQLのdense_rank関数

これはSQLのdense_rank関数に関する質問です。私は答えを見つけようとしてインターネットを研究してきました。いくつかのバージョンを試しましたが、何も機能していません。これは私が抱えている問題です: 誰かが 7/13 にプログラムを変更しました。7 月 14 日以降、このプログラムは給与フィールドを一掃します。= 0 である最新のレコードを見つけ、次に > 0 である 2 番目に新しいレコードを見つける必要があります。これは、私が試したコードの 1 つです。

これらは結果です。下の 2 行だけが必要であることを除けば、見栄えは良いです。最後の 2 行だけを受け取る方法はありますか? YMDEND は常に 99991231 とは限らないため、そのフィールドを使用できません。

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

sql - 各ランクの最大行数を持つ T-SQL "dense_rank"

私がする場合

列 colname に同じ値を持つすべての行で同じランクを取得します。

ただし、同じランクの行の数を @maxrows に制限して、@maxrows 行の colname の値が同じ場合、colname の値がまだ同じであっても、次の行に新しいランクが割り当てられるようにします。

どうすればこれを達成できますか?

0 投票する
3 に答える
861 参照

sql - SQL Server で密ランク関数から引き出された値をキャストする方法

以下のクエリでは、Dense Rank 関数を nvarchar(255) としてキャストしたいのですが、構文エラーが発生しています。次の質問があります -

  1. 密ランク関数から返された値をキャストすることは可能ですか?
  2. はいの場合、構文は何ですか?

0 投票する
3 に答える
61 参照

sql - 列の順序を変更するSQL

SQL Server 2005 を使用して列の古いシーケンスを新しいものに変更する方法

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

sql - テーブルをリンクする SQL クエリ。1 つのテーブルから最も古い履歴と関連する結果を返します。

照会する必要がある 2 つのテーブルがあります。それらをテーブル A およびテーブル A_HISTORIES と呼びましょう。テーブル A の各行は、A_HISTORIES の複数の行にリンクされています。私がやりたいことは、テーブル A の各行をテーブル A_HISTORIES の最も古い履歴とリンクできるようにすることです。

ただし、これは最も早い CREATED_DATE を持つ A/A_HISTORIES からの行のみを返します。Aの行ごとにこれを行うのを手伝ってくれる人はいますか? ありがとう

0 投票する
3 に答える
110 参照

sql - ソートせずにグループ ID を取得する効率的な方法

次のような非正規化テーブルがあるとします。

各人の名前と、その国の一意の ID を返すクエリを作成する必要があります。ID は必ずしも連続している必要はありません。さらに重要なことは、それらは任意の順序である必要はありません。これを達成する最も効率的な方法は何ですか?

最も簡単な解決策は次のようDENSE_RANKです。

ただし、これは私のコラムでソートを引き起こしCountryName、無駄なパフォーマンスを消費します。私はこの代替手段を思いつきました。これはROW_NUMBER、そのソートを抑制するためのよく知られたトリックを使用します。

2 番目のクエリが一般的に (私の不自然なデータ セットだけでなく) パフォーマンスが向上すると仮定するのは正しいですか? どちらの方法でも違いを生む可能性のある要因はありますか (のインデックスなどCountryName)? よりエレガントな表現方法はありますか?

0 投票する
3 に答える
119 参照

sql - mssql による内部選択順序

この内部選択で UserId による順序付けを行う必要があります (したがって、この最後の WHERE 句が考慮される前に) が、エラーが発生するため

ORDER BY 句は、ビュー、インライン関数では無効です...

私はそのようにすることはできません。現在のように、UserId と JobId による DENSE_RANK() で注文できる他の方法はありますか?

UserId の値のほとんどは NULL であり、JobId で Dense_ranked の場合、これらの JobId を並べ替えて、最初に UserId != NULL になるようにする必要があります。