四則演算とGroup By文でいろいろ計算してみよう

前回のNoteでは、SELECT文やWHERE文を使って、データを取り出していました。

今回は、フィールド(列)のレコードひとつ一つに対し、

①たし算(+)
②引き算(-)
③かけ算(*)
④割り算(/)

することができます。

それでは、始めていきましょう。

フィールドのレコードひとつ一つにたし算、引き算、…などができる

フィールド(列)のレコードに対し、

①たし算(+)
②引き算(-)
③かけ算(*)
④割り算(/)

を使って、

フィールド(列)同士のレコードひとつ一つ

に計算が適用されます。

なお、たし算すると、

レコード全体(それぞれのレコード)に影響を及ぼします。

ここで、

select price+20

とすると、

price列(フィールド)のレコードひとつ一つに20を足したデータが出てきます。

また、

select price*1.1

のように

税抜価格を税込価格にしたいときに使えますね。

フィールド単位でまとめて集計もできる

集計関数には、

①合計(SUM)
②平均(AVG)
③データの数を数える。(COUNT)
④最大・最小(MAX・MIN)

などがあります。

ん??どこかでみたことあるような…🤔

と思うかもしれません。

なぜなら、

Excelの関数の名前とそっくりだから

です。(AVGだけ違いますけどね。)

書き方は

select SUM(列(フィールド))

と書きます。

ですので、覚えやすいと思います。書き方は少し違うかもしれませんが・・・。

一定のグループ単位にまとめられるGroup By文


①合計(SUM)
②平均(AVG)
③データの数を数える。(COUNT)
④最大・最小(MAX・MIN)

ような集計関数を使う中で

日付ごとに集計の結果を出したいときもあるかもしれません。

そのときは、

Group By [カラム名]

を使いましょう。
これで

・月単位
・日単位
・商品単位で集計

したりすることができます。
文の順番ですが、

「Where→Group By」

であることを覚えておきましょう。

なお、

複数のフィールド(列)もカンマで指定

ができます。

カンマで指定できますが、指定した順番が優先順位になるので注意しましょう。

ではなぜ、

「Where→Group By」

なのでしょうか?

なぜなら、Where文は

すでにグループ化したデータに対して使う文ではないからです。

実は専用の構文があるんです。

Having文

というものを使います。

Group Byでグループ化したものを絞り込むにはHaving文を使おう

Having文とは

Group By文からさらに特定のレコード(行)を抽出する命令文

です。なので、

Whereはあくまでも、グループ化する前の命令文であることに注意

しましょう。
文の書き方は

Having [条件式]

と書きます。

なので、

Whereと混同しないよう

にしましょう。

では、Where文といっしょに使えるの?🤔

という疑問が湧いてくるかもしれません。その場合は、

GroupBy文の前に置くようにしましょう。

なので、置き方の順番は、

①Where
②Group By
③Having

となることに注意してください。

まとめ

今回は、

・フィールド同士の四則演算
・Where→Group By→Havingの順番で書く

を解説しました。それでは次回のNoteにてお会いしましょう。

この記事が気に入ったらサポートをしてみませんか?