SQLでGROUP BYをするときに気をつけなければいけない事

今週はGROUP BYで少しエラーが出てしまいました。
エラーが出た時の状況と解決した時の状況を説明します。

まず最初に外部結合

まず最初に主キーを元に外部結合をしました。

テーブル名 変数 LEFT OUTER JOIN テーブル名 変数

外部結合はnullでも表示される

外部結合はカラムにnullがあっても表示させることができます。

内部結合はnullを表示できない

INNER JOINはnullがあった場合表示することができません。

GROUP BY

外部結合をした後に同じ項目をまとめようとGROUP BYしました。

GROUP BY
      カラム名,
      カラム名

みたいな感じで。

実行すると

エラーーーーーーーーーーーーー
が出てしまいました。なぜか….

エラーの原因

GROUP BYを利用する時はSELECT句で選択したカラムを全て集約関数を利用しなければいけません。

集約関数の種類

・avg()        平均
・sum()     合計
・max()     最大
・min()      最小
・count()     個数

SELECT句の表示方法

SELECT
 avg(点数カラム),
 sum(点数カラム),
 max(点数カラム)
FROM
 テーブル名 変数1 LEFT OUTER JOIN
                     テーブル名 変数2
                  ON 変数1.共通のカラム = 変数2.共通のカラム
SELECT
 条件

みたいな感じです
さぁ、実行!

集約関数の注意点

集約関数を使い実行できる!と思いましたがエラーが出てしまいました、、、

集約関数を使うときも型を意識

もしデータベース上に登録されているデータが文字列の場合、数字型に変更して集約関数を利用しなければいけません。
関数を利用する時は常に型を意識しましょう!

The following two tabs change content below.
https://gotoyusuke.com/
JavaC#PHPServlet JSPSQLPython

コメントを残す

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

CAPTCHA