問題タブ [recursive-cte]

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 投票する
0 に答える
359 参照

sql - SQL Server Express - 実行時に再帰的な CTE がフリーズする TVP パラメーター化された TVF

非常に奇妙なサーバーの動作に遭遇しました-つまり:

以下のように、1 つの TVP 引数で TVF を取得しました

TVP は次のとおりです。

今、「奇妙な」部分:

エクスプレス サーバー バージョンで機能を実行しようとすると、フリーズします。つまり、実行時間は非常に長い (4 分間待機した後に実行をキャンセルする) のに対して、フル バージョンでは問題なく実行されます (0 - データはまったくありません)。どちらも2008R2、同じDB、同じTVF、同じTVPです。以下のように TVF を実行

しかし!

TVF の本体を単独で実行すると、魅力的に動作します (WTF?)

理由がわからない!? Express Edition にはいくつかの制限がありますか?

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

sql - 再帰的 CTE - マネージャー以下のすべての従業員を検索

このSQLFIDDLEのサンプル フィドルを作成しました

私の要件は、その特定のマネージャーの下にすべての従業員の階層を表示するようなものです

これが私が試したものです

出力:

私が期待している出力は、ManagerId 3 を指定すると、次の従業員が表示されるはずです

誰でもこれを手伝ってもらえますか

0 投票する
0 に答える
1884 参照

sql-server - 再帰 CTE を使用した SQL OpenQuery

SQL の OpenQuery 関数で使用される次の再帰 CTE があります。OpenQuery を使用して、SQL リンク サーバーにクエリを実行します。

(動作しません)

上記の CTE は機能しません。

ただし、OpenQuery を使用して非再帰 CTE を実行すると、正常に動作します。(これは機能します)

助言がありますか?ここで何か不足していますか?

0 投票する
6 に答える
18385 参照

sql - CTE で無限再帰ループを見つけるには

私は SQL の専門家ではありませんが、どなたか助けていただければ幸いです。

以下のように、再帰的な CTE を使用して値を取得します。

子 1 --> 親 1

親 1 --> 親 2

親 2 --> NULL

データの作成がうまくいかなかった場合、以下のようになります。これにより、CTE が無限再帰ループに陥り、最大再帰エラーが発生する可能性があります。データが膨大なため、この不良データを手動で確認することはできません。見分ける方法があれば教えてください。

子 1 --> 親 1

親 1 --> 子 1

また

子 1 --> 親 1

親 1 --> 親 2

親 2 --> 子 1

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

sql - マネージャーの従業員を含む、マネージャーに報告するすべての従業員を検索します

EMPLID、NAME、SUPERVISOR_ID の少なくとも 3 つの列を含むテーブルがあります。単一のクエリで、マネージャーの直属の部下を取得したいと思います。これには、WHERE句で managerid が指定されたときに、下位のマネージャーから最下位のスタッフまでの直属の部下が含まれます。

誰が誰に報告するかを表示するクエリを作成できます。

または一見同じことをする再帰的なCTE

(ケースステートメントは、最高のマネージャーが自分自身に報告するスーパーバイザーフィールドを持っているためです)

私が探していたのは、このクエリに emplid を与え、そのマネージャーに報告するスタッフまでずっと見ることができる機能でした。私の 2 つの例では、直属の部下を見ることができるように感じますが、残りの情報を見るには別の結合を行う必要があります。

そして、関連する2番目の質問ですが、これを調査している間、ほとんどの人は、それ自体に結合された最初のクエリを使用して解決できたと思うときに、再帰cteを使用してマネージャーの直属の部下を見つけることを解決しているようです。私が投稿した 2 つのクエリを考えると、それ自体に結合された同じテーブルを使用できるのに、なぜ再帰 CTE を使用して解決するのでしょうか? 同じ情報が返ってきたような?

それが何かを意味する場合、これは SQL Server 2012 または 2008 で実行されます。

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

postgresql - Postgres: 階層構造を名前でクエリする最良の方法

次のようなカテゴリの階層があるとします。

さて、誰かが私に入力を与えたとします['Computers', 'Laptops', 'Small']。Postgres で階層を照会し、正しい最終カテゴリ (id 5 など) に到達するための最良の方法は何ですか?

再帰 CTE を使用してツリーをトラバースできることは知っていますが、入力配列をクエリにパラメーター化する最良の方法は何ですか?

以下は多かれ少なかれ機能しますが、パラメーター配列を分割する必要があるため、実際には標準以下のように感じます。

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

android - CTE の SQLite クエリを変更する

これが私のクエリです:

基本的に、私は 1 時間間隔 (30 分ずつオフセット) にグループ化したいくつかの気象データを持っています。具体的には、その時間間隔で特定の天気の説明 (および一致するアイコン) を取得した回数を数え、その範囲内で天気の説明を選択したいと考えています。発生数 (カウント) が最も多い時間間隔 (desc_table)。次に、その時間セグメント内の平均気温を取得したいと思います ((avg_temp_table)(おそらくサブクエリが必要ですか?私が持っている方法ではなく、この平均を実行するには)、時間列に沿って 2 つのクエリを結合します。

クエリが作成された時間 (現在) に基づいてアンカーを作成し、発生回数をカウントしてから、次のメンバーが毎回 1 時間を減算し、次の時間間隔に移動してカウントするなどします。

サンプル データ。通常のデータセット {current_temperatures, current_weather_description, current_icons, time_stamp} の各時間セグメント内により多くの行があります。

出力は、時間間隔の平均気温 (avg_temp_table) と最初の集計 CTE (desc_table) {avg_temp, weather_description, current_icon} の出力を結合したものです。

現在、アンカーがweather_eventsテーブルから来ており、再帰メンバーもそうであるため、そのような列エラーは発生していません。再帰メンバーを desc_table に変更すると、「再帰集計クエリはサポートされていません」というエラーが表示されます。しかし、私は desc_table から再帰メンバーを取得したくありません。時間ごとにセグメント化し、1 時間間隔ごとにカウントを取得したいと考えています。そもそもアンカーも間違っていると思います。