MYSQLにおけるgroup by句での処理・別名利用

MYSQLにおけるgroup by句での処理実装・別名をつけることについて説明していく。

 

この前、MYSQLでSQLを作成しているときに

group by句で処理を入れるという場面があった。

 

group by句には基本的にselectにて指定しているカラムを記載することが多数だと思うが、

ここには処理を書くことができるのだ。(order by句も同様)

 

例えば

SELECT 
  T.KOKUGO
FROM
  TEST T
WHERE
  T.RIKA = 1
GROUP BY
  DATE_ADD(T.TEST_DATE, INTERVAL 3 MONTH)  #テスト日付に3ヶ月足す

このようなgroup by句の中での処理を用いたSQLが作成可能なのだ。

 

また、

時にはこの処理した結果をSELECTした値を結果として返したい場面も出てくるだろう。

その場合は、

 

SELECT 
  DATE_ADD(T.TEST_DATE, INTERVAL 3 MONTH) AS TDATE,
  T.KOKUGO 
FROM 
  TEST T 
WHERE 
  T.RIKA = 1 
GROUP BY 
  TDATE

 

このように SELECT句に処理を書き、

別名をつけることで、この別名をgroup by句にて使用することができる。

 

別名をつけずにこれをやる場合、処理をSELECTとGROUP BY句の両方に書かないと

いけないため、保守性が悪くなるのでこちらでの実装を推奨する。

 

 

以上。

これは基礎的なことだと思うが、使用する場面が来ないと意識することがないと思うので

もしこのような使い方をする場面が来たら、ぜひこのやり方を実践していただきたい。

“MYSQLにおけるgroup by句での処理・別名利用” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください