複数の CTE を使用する複雑なプロセスを作成しました (主に再帰的な階層作業用)。
データの小さなサンプル セットではすべてが期待どおりに進みますが、コードを大きなデータ セットに適用すると、予期しない (そして間違った) 結果を受け取りました。
私はそれをCTEに絞り込んだと思います。再帰的な CTE は、以前のいくつかの CTE で処理された "供給された" データであり、それが問題のようです。
次のようにサンプルデータセットを設定しました。
- 一意のデータを含む 4 つの行
- 各行はランダムな行番号を受け取ります (これは CTE で追加されます)
次に、最初の CTE の結果を取得し、2 番目の CTE で自己結合を実行します。
すべての行が結合し、それぞれが結合することを期待していました。実際に起こることは、等しくない行が結合することです。
誰かがこの行動の説明を提供できますか?