SQLにおける集約関数の1つ―。SUM関数の使い方を初心者向けにわかりやすく1から解説します。
参考 SQLとは?
SUM関数は指定したカラムのレコードの合計を取得します。
SELECT SUM(カラム名) FROM テーブル名;
このページではSQLにおけるSUM関数の利用方法・構文ルールを初心者向けにご説明します。
プログラマーやシステムエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。
SQL:SUM関数の使い方・構文ルール
SELECT SUM(カラム名) FROM テーブル名;
SUM関数はCOUNT関数を始めとする他の集約関数と「同様の構文ルール」で利用することができます。
ここでは以下のようなテーブルを例にSUM関数の利用方法と処理結果を見ていきます。
成績の一覧テーブルから、Japanaeseカラムの合計値を取得したい場合は以下のように記述します。
SELECT SUM(Japanese) FROM PointList; -- 結果は「360」
COUNT関数と同様に、複数のカラムを指定して合計値を取得することも可能です。
SELECT SUM(Japanese),SUM(Math) FROM PointList; -- SUM「360」/ SUM「3600」
NULL値の扱い
SUM関数では、合計を取得する際にNULL値を除外して計算してくれます。
仮に以下のようなテーブルが存在する場合にSUM関数を利用するとどうなるか?
SUM関数は、計算の前にNULLを除外し、その後で合計を計算するため結果は以下のようになります。
SELECT SUM(Japanese),SUM(Math),SUM(English) FROM PointList; -- SUM「10」/ SUM「100」/ SUM「10」
GROUP BY句との合わせ技
SUM関数は "GROUP BY" 句と併用して利用することが可能。一般的なシステムでSUM関数が用いられる場合は "GROUP BY" 句と同時に用いられることが非常に多いため、この使い方も併せて理解しておくと良いでしょう。
先ほどのPointListテーブルに性別を示すカラムを追加して考えてみましょう。
GROUP BY句にFM列を指定して実行した結果がこちら。
SELECT FM, SUM(Japanese) FROM PointList GROUP BY FM; /* 実行結果 +----------+-----------+ | FM | SUM | +----------+-----------+ | 男 | 10 | | 女 | 350 | +----------+-----------+ */
ご覧のように、指定したグループごとに結果を取得してくれます。
より実践的なサンプルコード
-- テーブルの作成 CREATE TABLE sales ( id INT PRIMARY KEY, product_name VARCHAR(255), category VARCHAR(255), sales_amount INT ); -- データの挿入 INSERT INTO sales (id, product_name, category, sales_amount) VALUES (1, 'Product A', 'Electronics', 100); INSERT INTO sales (id, product_name, category, sales_amount) VALUES (2, 'Product B', 'Electronics', 150); INSERT INTO sales (id, product_name, category, sales_amount) VALUES (3, 'Product C', 'Furniture', NULL); INSERT INTO sales (id, product_name, category, sales_amount) VALUES (4, 'Product D', 'Furniture', 200); INSERT INTO sales (id, product_name, category, sales_amount) VALUES (5, 'Product E', 'Electronics', 50); -- sales_amount の合計を取得 SELECT SUM(sales_amount) FROM sales; -- 結果→ 500 -- sales_amount の合計を category ごとに取得 SELECT category, SUM(sales_amount) FROM sales GROUP BY category; /* 結果 category | sum -------------|----- Electronics | 300 Furniture | 200 -------------|----- */
参考 CREATE TABLE / INSERT
SQLを1から学習したい方は
SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。
SQLは決して難しい技術ではないので、エンジニアであれば「当たり前のように」扱えて当然かも・・・?
とはいえ、案外SQLをちゃんと使ったことがない人も多いはずです。この機会に是非一度ご覧になってみてください。
システムエンジニアを目指したい方は
システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。
正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。
システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。