問題タブ [cross-apply]
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-server - 合計でSQLにクロス適用
次のクエリがあります。
Tasks
次のテーブル に作用します。
Progress
次のような xml は どこにありますか。
(通常は 2 つ以上のステップがあります..)
私のクエリは(実際のデータではなく、単なるサンプルです):
これはほとんど必要なものですが、完全ではありません。
一意の TaskID ごとSUM
に allLS_HowOthersAnswered
とが必要ですLS_ImproveMyChances
。
グループ化しようと思ったのですが、普通の内部結合とは違いすぎてできませんでした..
tsql - 実際のクエリ プランを含めると実行時間が爆発的に増加する
SQL Server 2005 を使用していますが、実行に 1 ~ 2 秒かかるかなり複雑なクエリがあります。
クエリ プランを使用してパフォーマンスをデバッグしたかったのですが、実際の実行プランを出力に含めると、クエリの所要時間が 2 秒から 2 分近くになり、場合によってはさらに長くなります。
このクエリで唯一興味深いコードは、テーブル値関数に対するいくつかのクロス適用です。興味深いことに、これらの相互適用を削除すると、クエリは約 100 ミリ秒で実行されます。
これは既知の問題ですか?
linq - Devart Oracle Cross Apply Exception
あるマシンでコードが機能し、別のマシンでは機能しないという問題が発生しています。どうやら、同じDevart dotConnect for Oracleバージョン(6.80.325.0)を使用しているようです。問題は、LINQにサブクエリがあり、Oracleで相互適用がサポートされていない場合です。
私はそれとサブクエリについてたくさん読みましたが、なぜそれがいくつかのマシンでOKであり、別のマシンではOKではないのか本当に理解できません。インストールでいくつかの修正を見逃しましたか?
ありがとう。
sql-server - Cross Apply で SQL Server の Xml から子の親の値を取得する
次の XML があります。
そして、SQL Server クエリを使用して次の出力が必要です。
次のSQLクエリを使用しています:
親行の値を含む最初の列を取得できません。最初の列の値を取得するためにどのような変更を加えることができるか教えてください。
linq - Linq から SQL へ。Apply 演算子の使用を防ぐ方法
質問があります:
このコードは SQL に変換されます。
そのコードは Apply を使用します。Apply を Left Join に置き換えると、コードの実行速度が数倍速くなります。左結合を使用してLinqにコードを生成させる方法は?
sql-server - CLR統合テーブル機能を備えた効率的なクロスアプライ
SQL Serverには、CLR統合ベースのテーブル値関数GetArchiveImagesがあります。私はそれを次のように呼んでいます:
問題は、関数への個々の呼び出しごとにオーバーヘッドがあることです。
テーブル全体と一度に結合できる場合、オーバーヘッドはごくわずかですが、行ごとに1回呼び出されるため、そのオーバーヘッドは行数に比例します。
ストアドプロシージャによって返されるテーブルは(私が知る限り)何とも結合できないため、ストアドプロシージャは使用しません。
行ごとではなく、ストアドプロシージャまたは関数の結果をまとめてテーブルに結合する効率的な方法はありますか?
xml - XML パス (カンマ区切り) を使用したクロス適用 - > 1 の場合は最大行数を削除
私が望むのは、それが1つ以上を返す場合、MAX([年]) 行を削除して残りを返すことです。つまり、Cross Applyselect が 4 レコードを返す場合、レコードは 3 のみを返します。3 の場合は 2 のみを返します。2 の場合は 1 のみを返します。最良の方法は、コンマを別の文字 (# など) に変更することだと思います。右検索 # すべてを削除 右に続く。Cross Apply を使用しなかった場合、3 つの行を作成できます。 Row(1)18 ----John Smith ---- BA ---- College1 --- 1990 Row(2) 18----John Smith ---MS---- Univ1------2003 Row(3)18----John Smith ----BA ----Univ2 -----2010.... したい行 (3) は学生の最新/現在の学位情報であるため、削除します。現在ではなく、以前の学位、機関、年のみが必要です。おそらく Right(rtrim(最後のコンマの後のすべて) ですが、カウントする必要があります 以下はSQLです:
結果のクエリ
PersonID -- FullName -- コンマ Degree -- CommInst -- CommYear
18 -- ジョン・スミス -- 学士号、修士号、博士号 -- 大学 1、大学 1、大学 2 -- 1990 年、2003 年、2010 年
45 -- ポール・ライアン -- 学士号、修士号 -- 大学 15、大学 19 -- 1999 年、2008 年
134 -- シンディ・ジョーンズ -- BA -- College56 -- 1978
前の学位、機関、年のみを返したいです。最新ではありません。意味 PersonID 18 は、PHd、Univ2、2010 を削除します。PersonID 45 は、MS、Univ19、2008 を削除します。PersonID 134 は、1 つのレコードしかないため、そのまま残します。
これが理にかなっていることを願っています。前もって感謝します。
sql - SQLクロスアプライ
監査情報を含むSQLテーブルがあります。
監査レコード間の違いを表示しようとしています。
次のSQLクエリを使用しています。
パフォーマンスを向上させるために2つの選択クエリをマージすることは可能ですか?
xml - 親からすべての子ノードをクエリするにはどうすればよいですか?
私はこの非常に単純なxmlを持っており、<pcc>
ノード内のすべてのデータを結果セットにプルしようとしています。どういうわけかCROSSAPPLYを使うつもりだと読みましたが、今のところ私の努力は失敗しています。
前もって感謝します。
sql - クロス適用内の最大 row_number を取得する
SQL の場合、row_number の最大値の計算に問題があります。
理解しやすいと思うので、SQL Fiddle の例で直接説明します。SQL Fiddle
- 列「OrderNumber」、「HourMinute」、および「Code」は単にテーブルを表すためのものであるため、コーディング目的には関係ありません
- 列「DateOnly」には日付が含まれています
- 列「電話」には顧客の電話が含まれています
- 列「購入」には、顧客が過去 12 か月に購入した回数が含まれています。この値は日付ごとに提供されるため、12 か月の期間は評価対象の日付に相対的であることに注意してください。
最後に、私が作成しようとしている列は、'Purchases' 列に表示された数字が過去 12 か月間 (電話ごと) に表示された回数をカウントする 'PREVIOUSPURCHASES' です。
SQL Fiddle の例で、私がこれまでに達成したことを確認できます。列「PREVIOUSPURCHASES」は、私が望むものを生成していますが、より低い値も生成しています (たとえば、最大のものだけが必要です)。
たとえば、行 4 と 5 が重複していることがわかります。1 つは 'PREVIOUSPURCHASES' が 1 で、もう 1 つは 2 です。この場合、4 行目は必要ありません。
row_number を max(row_number) のようなものに置き換えることについては考えましたが、それを生成できませんでした (stackoverflow で同様の投稿を既に見ました...)。
これは、SQL Server 2012 で実装する必要があります。
前もって感謝します。