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件の返信