タグ

2021年2月7日のブックマーク (1件)

  • SQL だけで再帰的に順列/組み合わせを列挙する

    皆様もテーブルに列に格納されている値から任意の順列 _n \mathrm{P} _r や組み合わせ _n \mathrm{C} _r を列挙したくなった経験があるかと思います。 この記事では、SQL だけで順列/組み合わせを列挙できないか Snowflake を例に検討していきます。 古典的な方法: Self Join 実はこれには SQL っぽい古典的な方法があります。それは Self Join, つまり同じテーブルを 2 つ結合する方法です。 順列の場合はその行と異なる行を、組み合わせの場合は、重複しないようにその行より小さい行を結合すればいいだけです。 まずは、サンプルデータとして 0 から 9 までの数字が格納されたテーブル nums を作成します。 create or replace table nums (i int) as select seq4() from table(g

    SQL だけで再帰的に順列/組み合わせを列挙する