組み合わせ計算を可能にします。ここでのポイントは様々な条件下でのカラム値とカラム値の組み合わせを,SQLを使って柔軟に求めて行く所から始めましょう。テーブルがあるとします。1〜6までの数字を使って2つの数字の組み合わせをSQLで作って見ましょう。JOINして全組み合わせを算出します。36個の数値の組み合わせ結果が得られました。句で同じ数値を除外しています。30個の数値の組み合わせ結果が得られました。1」は同じものと扱います。課題2に引き続き、同じ数字同士の場合も除外します。先ほどの半分の15個の組み合わせが得られました。このようにある一つのカラムに対して、存在する値の組み合わせを求めることはSQLで簡単に記述できます。テーブル(男:2人,女:3人)に対して、以下を考えます。課題4:可能な男女のマッチングを考える(mistake)とりあえず何も考えずに課題3と同種のクエリを実行してみます。おやおやこれはいけません。一部で男同士、女同士のペアが作られてしまっています。値をもつもののみを結合するようにします。うまく男女のマッチングだけが抽出できました。Trump:同じ絵柄のカードの組み合わせトランプは様々な組み合わせを考えるための最適な材料です。トランプには異なる4種の絵柄があり、それぞれの絵柄で1〜13の値を持ったカードがあります。(ここでは目立ちませんが)ジョーカーという存在もあります。この53枚のトランプに対して、いくつか組み合わせを考えてみましょう。課題5:異なる絵柄のカードの組み合わせを考える課題4と近い、異なる絵柄の数字の組み合わせパターンから始めましょう。以降,jokerは省くことにします。2,028通りの組み合わせとなり、だいぶ多くなってきました。課題6:同じ絵柄のカードであるが,同じ数字は省いた組み合わせを考える同じ絵柄同士を抽出条件にして、課題3と同じ事をやります。こちらは312通りとなりました。課題7:いくつかのカードが抜かれた部分トランプの存在する課題6での組み合わせを考える上のテーブルのように、いくつかのカードが抜けてしまったトランプに対して課題6と同様に以下のクエリを実行します。課題8:課題7で,絵柄を区別せず,数字の組み合わせの登場回数を考える課題7のクエリを絵柄で区別せずに数字の組み合わせのみを考え、かつ組み合わせ毎の登場回数を算出してみましょう。全体で3回登場していることがわかります。アイテムIDとマッピングすると、課題7では「同じレシート内に存在するアイテムの全ての組み合わせ」を考えている事に等しくなります。課題8は「全レシートを通じて同時購入されたアイテムペアの登場頻度をカウントする」のと同義となります。課題9:53枚のトランプのペアの組み合わせを全て考える。今回の課題はシンプルに,53種のカードのペアが取り得る組み合わせ(順序は別とします)を考えてみましょう。クエリは課題1と同じです。組み合わせが生成され,処理されていきます。万点以上,なんてところもざらにあると思います。そのような場合でバスケット分析を行う事は,100億通りの組み合わせが計算過程で考慮されることになります。従来のシングルノードのデータベースではこのオーダーの計算量は対応できるレベルのものではありませんでした。インプットデータは小さくても組み合わせで「爆発」してしまうバスケット分析などが,簡単に実現できなかった原因の1つにこの問題があったのです。課題10:53枚のトランプのトリプレット(三つ組み)の組み合わせを全て考える。程度に減らすことができますが,逆に言えばその程度にしか工夫余地が無い事を示していることになります。アップグレードのお知らせコメント0件のコメントログインしてコメントを残してください。