問題タブ [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 投票する
1 に答える
131 参照

sqlite - 通常の CTE からの再帰 CTE

時間間隔と天気の説明によっていくつかの天気データをグループ化する with 句があります。

結果 {counter, hour, current_weather_description}:

ここで、1 時間ごとに一番上の行を選択する再帰クエリを作成したいと思います。一番上の行には、その時間間隔で発生 (カウント) が最も多い説明が常に含まれます。同数の場合でも、一番上の行が選択されます。これが私の最初の試みです:

クエリをいじってみると、temp_table ではなく "segment" からの再帰メンバーを "from" にしたいようです。なぜそれが私にそれをさせたいのか理解できません。この例と似たようなことをしようとしていますが、各再帰クエリから 1 行だけが必要です。

これは私が望む結果です{カウント、時間、説明}:

0 投票する
4 に答える
72031 参照

sql - 単一のクエリで複数の CTE

単一のクエリで複数の CTE を組み合わせることは可能arelですか? 私はこのような結果を得る方法を探しています:

ご覧のとおり、1 つの再帰 CTE と 2 つの非再帰 CTE があります。

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

sql - 再帰的 CTE の SQL 置換

を含むテーブル Test があります

次のように、他の列と一緒にパスを生成したい

この質問に従って、再帰 CTE を使用してこれを達成できます

しかし、現時点ではこのオプションがない WX2 データベースを使用しています。これに代わる SQL はありますか?

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

sql - ファイル システム内のファイルのフル パスを検索する

次のようなファイルシステムがあります。

すべてのファイルまたはディレクトリには、ID とその親の ID があります。ファイル名またはディレクトリ名が与えられた場合、その完全なパスをどのように見つけますか?

私のアルゴリズムは次のとおりです。

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

postgresql - PostgreSQL で重複する時間範囲を結合する

タイム スタンプの範囲とユーザー ID を含む PostgreSQL (9.4) テーブルがあり、(同じユーザー ID を持つ) 重複する範囲を 1 つのレコードに折りたたむ必要があります。

これを達成するために複雑な CTE のセットを試してみましたが、(40,000 行以上) 実際のテーブルには、問題を複雑にするエッジケースがいくつかあります。おそらく再帰的な CTE が必要だという結論に達しましたが、それを書くのはうまくいきませんでした。

テスト テーブルを作成してデータを入力するコードを次に示します。これはテーブルの正確なレイアウトではありませんが、例としては十分に近いものです。

これを行うと、セッションが開始された時刻で並べ替えられることがわかりました。

これを使用して、ウィンドウ関数を使用して、個々のレコードが前のレコードと重複しているかどうかを判断できます。

ただし、これは、単一の前のレコードが現在のレコードと重複しているかどうかを検出するだけです (レコードの場所を参照してくださいid = 6)。パーティションの先頭までさかのぼって検出する必要があります。

その後、重複するすべてのレコードをグループ化して、最も早いセッションの開始点と終了する最後のセッションの終了点を見つける必要があります。

私が見落としているこれを行う方法があると確信しています。これらの重複するレコードを折りたたむにはどうすればよいですか?

0 投票する
2 に答える
128 参照

sql-server - SQL サーバー: 開始時刻と終了時刻を含むテーブルから日付範囲を作成する方法

DayID で注釈が付けられた特定の日の 1 時間ごとに 1 つずつ、24 のエントリを含む一時テーブルがあります。テーブルには、その特定の時間範囲でアプリケーションがオンかオフかが示されます。

テーブルのエントリ数を減らして、アプリケーションがオンになっている時間だけを表示したいと考えています。

いくつかのサンプル データは次のとおりです。

望ましい出力は

#OnOff テーブルには、常に 1 日のすべての時間の値が含まれます (つまり、最後の 1 時間を除いて、終了時刻と開始時刻は常に連続します)。明らかにカーソルを使用してこれを実現できますが、これは非常に非効率的です。この結果を達成するためのより良い方法はありますか。