要旨を任意のn個の列を選択:は、動的ウィンドウ関数で私の本当のselect文の
select
lag(somecol) over (partition by thing_id) as prev_1,
lag(somecol,2) over (partition by thing_id) as prev_2,
lag(somecol,3) over (partition by thing_id) as prev_3,
othercol,
...
over
はかなり密な、読めないコードにつながるはるかに複雑である本当のクエリで。さらに、最後の3行を取得することはハードコーディングされます(vs n =何でも)。
ストレートSQLには、これらのprev_x
列を反復的にまたは再帰的に指定する方法はありますか?1)コードが読みやすく、2)前の列の数を動的に指定できますか?
これは現在の読みやすさの問題を解決しました。私は動的にSELECTを生成することはできませんので、列カウントを「ハードコーディング」しています。 –