タグ

ブックマーク / mickmack.hatenablog.com (1)

  • SQLの論理形式 - ミックのブログ

    新人の子たちに SQL を教えてきました。GROUP BY のキーに指定していない列名をSELECT句に書いてはいけない、という禁則の意味がよく理解できずに困っている例を多く見かけました。特に、GROUP BY句で列にCASE式を使った場合、もはやそれはキーとして元の列とは同じでありえない、というところの理解が難しかったよう。 一般に、GROUP BY句を指定したら、SELECT句に書ける要素は三種類に制限されます。 GROUP BYで指定した集約キー 集約関数 定数 そういえば私も初心者のころ、この制限の必然性が分からなくて悩んだ記憶があります。GROUP BYがパーティション・カットの機能を果たす、ということをイメージできれば、この種の疑問は解消するのですが、それが身体感覚として身につくのはちょっとかかりそう。 SQL を最初に学ぶとき、このあたりで混乱しやすいのは、きっとSQLを書く

    SQLの論理形式 - ミックのブログ
  • 1