問題タブ [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 - RでSQLランク関数をエミュレートする方法は?
ROW_NUMBER()
Oracle 、RANK()
、またはDENSE_RANK()
(「順序に応じて行に整数値を割り当てる」; http://www.orafaq.com/node/55を参照)のようなランク関数に相当する R は何ですか?
各機能の機能は、アドホックな方法で実現できる可能性があることに同意します。しかし、私の主な関心事はパフォーマンスです。メモリと速度のために、結合またはインデックス アクセスを使用しないことをお勧めします。
sql - SQLクエリ複数のランク/グループから最初のランク1行を選択
私は以下のデータを持っています
表1
以下は評価するためです-
IDごとに1行だけを返したいのですが、col1が失敗した場合はcol2に移動し、失敗した場合はcol3条件に移動します。上記の表から、結果は次のようになります。
密なランクを使ってみましたが、うまくいきませんでした。使用可能な関数またはSQLロジックを使用してこのロジックを実行する方法がわかりません。
sql-server-2008 - SQL Server:別の列の順序に基づいて1つの列でdense_rankを使用する方法
SQL Server 2008にテーブルがあり、1つの列、たとえば列に交互の値が必要ですalt
。その列の重複には常に同じ値が必要なので、 %2を介しdense_rank
てこの列の関数を使用することを考えていました。alt
ただし、そのテーブルには郵便番号もあり、交互の値を割り当てる前にデータを並べ替える必要があります。
したがって、基本的に、列に基づく交互の値alt
が割り当てられた後、データが郵便番号で並べ替えられると、交互の値は実際に交互になる必要があります(もちろん「alt」テーブルの重複は別として)。
現在、alt
値が交互の値を取得するという結果が得られますが、郵便番号で並べ替えると、dense_rank関数を介してたとえば0,0,0のシーケンスが問題になります。
一時テーブルを使用してみましたが、期待した結果が得られませんでした。
次に、一時テーブルの順序が保証されていないため、そのテーブルでdesk_rankを実行します。
どんなアイデアでも大歓迎です!
乾杯、ステボ
編集:
サンプルコード:
ここでの問題は、郵便番号で並べ替えると、次の列の両方に交互の値と同じ値(0)が含まれることです。郵便番号で並べ替えると、結果は実際には交互の値になるはずですが、これらの交互の値は、BaseForAlternatingValue列に基づいている必要があります。
期待される結果は次のとおりです。
最後の2つの結果行の最後のAlternatingValueは異なります。AlternatingValueは異なる郵便番号を交互に使用する必要があります。前は、最後から3番目の行が0で、最後から2番目の行が0でした。
以下のMikaelの質問については、「行を追加した場合はどうなりますか('cccccccccc'、 '12345')。その場合、期待される出力はどうなりますか?」
その場合、期待される出力は次のようになります。
要約すると、BaseForAlternatingValue列に交互の値が必要ですが、郵便番号で注文すると、この交互の値が表示されるはずです。(そしてBaseForAlternatingValueの重複には、同じ「代替」値が必要です)
--------------------------------
結局、私はより単純で比較的優れた解決策を見つけました:1)ID値に挿入して順序付けする一時テーブルを使用し、id値を使用します(id値はorder by句を反映します)2)指定されたBaseForAlternatingValueの最小IDを見つけます3)それよりも小さいIDを持つ個別のBaseForAlternatingValuesの数を見つける
sql - TSQLで隣接する行を比較するシーケンス番号を生成する
隣接する行でグループ名が変更されたときにシーケンス番号を生成するのに助けが必要です。DENSE RANKを試しましたが、うまくいきませんでした。
ありがとう
sql - DENSE_RANK と IN の奇妙な動作
句DENSE_RANK()
への入力を生成するために次を含むクエリを組み合わせると、奇妙な結果が発生します。IN
それらを分離したことを示すために。
このクエリ
1 つの結果を返します:
このクエリ
1 つの結果も返します。
ただし、両方を組み合わせると:
最終的に 2 つの結果が得られます。
G002MIMQ
結果にどのように含まれるか理解できません。私は Oracle 11.2.0.1.0 を使用していますが、これは私が誤解している一般的な SQL 機能である可能性があることを理解しています。
この奇妙な問題に光を当てていただければ幸いです。
sql-server - SQL Server で Dense_Rank を使用したランク付きの列のランキングの組み合わせ
データを次のように持っているという要件があります
このような出力を取得したい
レコードをランク付けするときに、 DepartmentNumberとUserEmailの組み合わせを考慮したいと考えています。これを達成するためにパーティションでDENSE_RANK()を使用していますが、どういうわけか目的の出力を得ることができません。どこが間違っているのかわかりません。誰でもこれで私を助けてくれませんか
これは私が使用したクエリです
sql - 雇用テーブルのSQLクエリ.
私の従業員テーブルには3つの列があります:
emp_id
、emp_sal
、dept_id
.
部門ごとに、給与が最も高い従業員を見つける必要があります。私は戻る必要がありemp_id
、それらの従業員のために。emp_sal
dept_id
前もって感謝します
sql - MS Access: アップデートでdense_rankを使用
さまざまなランクのスコアを含むランキング テーブルがあります。
更新前:
更新後:
UPDATE
同様に使用するクエリを作成しようとしましたDENSE_RANK
が、それを機能させる方法がわかりませんでした。
sql - 各日の最高売上を取得する SQL クエリ
次のデータを含むテーブルSaleがあります
次のような結果が必要です。
どんな助けでも大歓迎です。ありがとう!
sql - 範囲比較のためにレコードを選択
私はこれに夢中です。純粋なSQLでそれができたらいいのにと思いますが、この時点ではどのソリューションでもかまいません。
ほぼ同時に発生したイベントのリストを含むテーブルがありますta
。目標は、 onから「孤立した」レコードを見つけることです。例えば:tb
ta
tb
しかし、+-5 秒のしきい値を使用する必要があるとしましょう。したがって、検索するクエリは次のようになります。
(フィドル: http://sqlfiddle.com/#!4/b58f7c/5 )
ルールは次のとおりです。
- イベントは 1 対 1 でマッピングされます
tb
特定のイベントに最も近いイベントta
が正しいマッピングと見なされます。
つまり、結果のクエリは次のようなものを返す必要があります
私がここに置いたサンプルクエリは、私が抱えている問題を正確に示しています。時間が重なると、体系的に正しい行を選択することが難しくなります。
dense_rank()
正しい行を選択するための答えのようですが、どのパーティショニング/ソートがそれらを正しく配置しますか?
言及する価値がありますが、私はこれを Oracle 11gR2 で行っています。