2007.07.11

MySQLのGROUP BY句

現在、MySQLでの開発を行っています。
MySQLでのGROUP BY句の扱いについて、
いくつか紹介します。

MySQLではGROUP BYの仕様を独自に拡張していて、
以下のような記述が行えます。

SELECT COL1 A
      , COL2 B
  FROM TABLE
 GROUP BY A

SELECT句で指定した列の別名をGROUP BY句で使用することが出来ます。
当然、OracleやSQLServerではエラーとなってしまいます。

また、GROUP BY句で指定していないフィールドをSELECT句で指定することが出来ます。

SELECT COL1
      , COL2
  FROM TABLE
 GROUP BY COL1

通常であれば、COL2には集計関数を使用しなければなりませんが、
MySQLの場合、上記の書き方でもエラーになりません。

データベースによる関数の違いやSQLの書き方の違いは知れば知るほど面白いものです。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
osano