問題タブ [row-number]
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 - Row_Number()を使用して行のサブセットを選択します
50〜60の行のサブセットを選択しようとしています。問題は、「RowNo」が無効な列名であるということです。
ありがとうございました
SQL SERVER2008R2の使用
sql - T-SQLデータベースの参照による列のカウントと順序付けに苦労している
次のSQLステートメントを正しく記述しているかどうかわかりませんか?(T-SQLを使用)
私は2つのテーブルを持っています:
表1:[dbo]。[t_Orgnzs]
表2:[dbo]。[t_Usrs]
表2から要素を1から16の昇順で[oid]列の順に選択する必要がありますが、[oid]が表1の文字列を参照しているため、実際に返す必要があります。
たとえば、テーブルが次のようにレイアウトされている場合:表1:
そして表2:
結果のクエリは次を返す必要があります。
これが私が使用しているSQLです:
そして、「無効な列名'organizName'」というエラーが発生します。
sql-server-2008 - WITH句SQL Server 2008内で長さで注文する方法は?
長さによる並べ替えは、WITH 句内では機能しません。
sorting - パーティションクエリよりもrow_numberのインデックスを使用してパフォーマンスを向上させる
次の形式のクエリがあります。
そして、そのパフォーマンスはちょっとひどいです。
2つのインデックスを作成してみました。1つは列によるパーティション(aおよびb)用で、もう1つは列による順序(c、d、e、f)用です。
Explain Planを使用すると、インデックスが使用されていないことがわかりました。ただし、groupby句を使用した他のクエリには使用できます。
クエリをリファクタリングする方法、またはこのクエリのパフォーマンスに役立つようにインデックスを再作成する方法について何かアイデアはありますか?
前もって感謝します
sql - 条件に基づいて行番号を再開する
1 つのクエリを実行し、次の結果を取得しています
データ
さらにパーティションを作成し、シーケンス値に基づいて行番号を割り当てるにはどうすればよいですか。たとえば、同じグループの最初の HOSPcode、MRN があるたびに行番号を再開したい
sql - 別の列の値に応じて行をインクリメントする
以下の sql クエリがあります。dtMontno は任意の月から開始でき、以下のように行列を手動で追加しています。
今私の結果は次のとおりです。
dtMonthno に応じて行列を開始し、上記の例で 1 ずつインクリメントする方法はありますか?5 から開始して 15 で終了しますか?
ありがとう
sql - INNER JOIN を使用した SQL ROW_NUMBER
結果の 5 行目から 10 行目を返すには、次のクエリで ROW_NUMBER() を使用する必要があります。誰かが私が何をする必要があるかを教えてもらえますか? 私は無駄にしようとしてきました。誰かが助けてくれれば、本当に感謝しています。
tsql - T-SQL : ROW_NUMBER() を使用して FOR XML を改ページする - 子ノードが返されない
次のクエリを実行しています
次の形式で XML を返します (返される属性値は省略しました - これらは関係ありません)。
ここまでは順調ですね。
ここで、結果をページ付けしたいと思います。この一部では、上記のクエリをサブクエリとして実行する必要があります。したがって、次のクエリがあります。
ただし、これは次の XML を返します。
サブクエリの導入により、FOR XML 句が子の結果をネストしなくなったことがわかりますが、その理由はわかりません。
ROW_NUMBER() を介してページネーションを実装し、上記の XML の最初のブロックのように結果をフォーマットする方法を誰か教えてもらえますか?
sql-server-2008 - SQL Server 2008 Sum と Select Max のみ?
日付期間の最大値/上位値のみを使用する必要がある場合に合計を実行する方法を理解しようとしています。これはSQL Serverのようなものです: MAX(DATE) の行のみを選択しますが、正確には選択しません。読んでくれてありがとう。
私は3行を取得します。しかし、私が実際に欲しいのはこれです:
tableid=1 の行は必要ありません。これはデータの古いバッチの一部であるためです。新しい行は後の挿入を表します (同じ日時の記録されたすべての値は、バッチで同じです)。
したがって、新しい行が次のように挿入された場合:
次に、データは次のようになります。
sql - 再帰 CTE が分析関数 (ROW_NUMBER) を手続き的に実行するのはなぜですか?
昨日、再帰的な CTE に回答したところ、これらが SQL Server に実装される方法に関する問題が明らかになりました (おそらく他の RDBMS でも?)。基本的にROW_NUMBER
、現在の再帰レベルに対して使用しようとすると、現在の再帰レベルの各行サブセットに対して実行されます。これが真の SET ロジックで機能し、現在の再帰レベル全体に対して実行されることを期待します。
この MSDN の記事から、私が見つけた問題は意図された機能であると思われます。
CTE の再帰部分の分析関数と集計関数は、CTE のセットではなく、現在の再帰レベルのセットに適用されます。ROW_NUMBER などの関数は、現在の再帰レベルによって渡されたデータのサブセットに対してのみ動作し、 CTE の再帰部分に渡されたデータのセット全体に対しては動作しません。詳しくは、J. 再帰 CTE での分析関数の使用を参照してください。
私の掘り下げでは、なぜこれがそのように動作するように選択されたのかを説明する場所を見つけることができませんでした? これは、セットベースの言語での手続き型アプローチに近いため、SQL の思考プロセスに反して動作し、非常に混乱を招くと思います。再帰CTEが再帰レベルで手続き型の方法で分析関数を扱う理由を誰かが知っている、または誰かが説明できますか?
これを視覚化するのに役立つコードは次のとおりです。
RowNumber
これらのコード出力のそれぞれの列に注意してください。
これはCTEのSQLFiddleです(再帰の第2レベルのみを表示)
これは、CTEが行うことを期待する2番目のSQLFiddleです(問題を表示するには、2番目のレベルのみが必要です)
私は常に SQL 再帰 CTE がこの while ループのように実行されることを想定していました