第1部 魔法のSQL 1-5 外部結合の使い方|達人に学ぶSQL徹底指南書
1-5 外部結合の使い方
外部結合で行列変換 その1(行→列):クロス表を作る
外部結合はスカラ・サブクエリで代用できる。
外部結合で行列変換 その2(列→行):繰り返し項目を1列にまとめる
UNION ALLで、行持ちに変換。UNION ALLは重複行を削除しない。
クロス表で入れ子の表側を作る
外部結合でも、結合条件がNULLとなり、結果がunknownになる。
表側を入れ子にする場合、その形のマスタをあらかじめ用意する。
掛け算としての結合
結合は、一対一でなくとも一対多ならべ行数は(不当には)増えない。
完全外部結合
完全外部結合は「両方をマスタに使う結合」
完全外部結合を使えない環境で同じ結果を得るには、左外部結合の結果と右外部結合の結果をUNIONする。
内部結合 = 積集合(INTERSECT)
完全外部結合 = 和集合(UNION)
外部結合で集合演算
集合演算子はソートを発生させるので、パフォーマンス上の問題を引き起こす可能性がある。
完全外部結合で排他的和集合を求める
関係除算を外部結合で書ける。
まとめ
「OUTER」は省略可能だが、内部結合に対して外部結合であることを明治するために、省略しないほうが良い。
Link
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型