LoginSignup
4
2

More than 3 years have passed since last update.

【SQL】SUM関数でGROUP BYを用いないとエラーになる際の対処法・考え方

Posted at

状況

SQLを勉強し始めて約2週間くらいになります。
タイトルの通り、SUM関数を用いたSELECT文を作成中に、エラー(意図した値が取得できないこと)が
発生した為、自身の備忘録も含めて記載します。

具体例

「注文」テーブルがあるとします。
このテーブルには、注文された商品の商品コードや注文番号、注文された数量などが
格納されています。

そこから、注文された数量の合計を取得したい時、,以下で取得できます。

SQL

SELECT SUM(数量)
FROM 注文

FROM句で「注文」テーブルを指定し、「注文」テーブルのカラムである「数量」の合計(SUM関数で取得できる)
を抽出しようとしています。

このクエリはうまくいきます。

今度は、「注文」テーブルから「注文コード」と「数量の合計」2つのカラムの値を取得したいとします。
初めに下記の様なSELECT文を思いついたのですが、こちらだと意図した値が取得できません。

SQL
SELECT 注文コード,SUM(数量)
FROM 注文

解決策

SQL
SELECT 注文コード,SUM(数量)
FROM 注文
GROUP BY 注文コード

上記の様に、GROUP BYで指定したカラム列によってグループわけして
データを抽出することで、「注文コード」と「数量の合計」を取得できます。

SUM関数を用いると、複数の行を1つの行にまとめることになるので、集計結果が1行になります。
その1行になった集計結果に、複数行ある「注文コード」を対応させることができずエラーになるようです。

今後

今回のエラーでSQLクエリが発行された時に読み込まれる順番など、
意識していなかった大事な部分に気づけました。
引き続き学習を続けます。。。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2