問題タブ [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.
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
sql - SQLのdense_rank関数
これはSQLのdense_rank関数に関する質問です。私は答えを見つけようとしてインターネットを研究してきました。いくつかのバージョンを試しましたが、何も機能していません。これは私が抱えている問題です: 誰かが 7/13 にプログラムを変更しました。7 月 14 日以降、このプログラムは給与フィールドを一掃します。= 0 である最新のレコードを見つけ、次に > 0 である 2 番目に新しいレコードを見つける必要があります。これは、私が試したコードの 1 つです。
これらは結果です。下の 2 行だけが必要であることを除けば、見栄えは良いです。最後の 2 行だけを受け取る方法はありますか? YMDEND は常に 99991231 とは限らないため、そのフィールドを使用できません。
sql - 各ランクの最大行数を持つ T-SQL "dense_rank"
私がする場合
列 colname に同じ値を持つすべての行で同じランクを取得します。
ただし、同じランクの行の数を @maxrows に制限して、@maxrows 行の colname の値が同じ場合、colname の値がまだ同じであっても、次の行に新しいランクが割り当てられるようにします。
どうすればこれを達成できますか?
sql - SQL Server で密ランク関数から引き出された値をキャストする方法
以下のクエリでは、Dense Rank 関数を nvarchar(255) としてキャストしたいのですが、構文エラーが発生しています。次の質問があります -
- 密ランク関数から返された値をキャストすることは可能ですか?
- はいの場合、構文は何ですか?
sql - 列の順序を変更するSQL
SQL Server 2005 を使用して列の古いシーケンスを新しいものに変更する方法
sql - テーブルをリンクする SQL クエリ。1 つのテーブルから最も古い履歴と関連する結果を返します。
照会する必要がある 2 つのテーブルがあります。それらをテーブル A およびテーブル A_HISTORIES と呼びましょう。テーブル A の各行は、A_HISTORIES の複数の行にリンクされています。私がやりたいことは、テーブル A の各行をテーブル A_HISTORIES の最も古い履歴とリンクできるようにすることです。
ただし、これは最も早い CREATED_DATE を持つ A/A_HISTORIES からの行のみを返します。Aの行ごとにこれを行うのを手伝ってくれる人はいますか? ありがとう
sql - ソートせずにグループ ID を取得する効率的な方法
次のような非正規化テーブルがあるとします。
各人の名前と、その国の一意の ID を返すクエリを作成する必要があります。ID は必ずしも連続している必要はありません。さらに重要なことは、それらは任意の順序である必要はありません。これを達成する最も効率的な方法は何ですか?
最も簡単な解決策は次のようDENSE_RANK
です。
ただし、これは私のコラムでソートを引き起こしCountryName
、無駄なパフォーマンスを消費します。私はこの代替手段を思いつきました。これはROW_NUMBER
、そのソートを抑制するためのよく知られたトリックを使用します。
2 番目のクエリが一般的に (私の不自然なデータ セットだけでなく) パフォーマンスが向上すると仮定するのは正しいですか? どちらの方法でも違いを生む可能性のある要因はありますか (のインデックスなどCountryName
)? よりエレガントな表現方法はありますか?
sql - mssql による内部選択順序
この内部選択で UserId による順序付けを行う必要があります (したがって、この最後の WHERE 句が考慮される前に) が、エラーが発生するため
ORDER BY 句は、ビュー、インライン関数では無効です...
私はそのようにすることはできません。現在のように、UserId と JobId による DENSE_RANK() で注文できる他の方法はありますか?
UserId の値のほとんどは NULL であり、JobId で Dense_ranked の場合、これらの JobId を並べ替えて、最初に UserId != NULL になるようにする必要があります。