SQL道場 集計関数 SUM関数

SQL SQL
この記事は約2分で読めます。

SQLで合計値を算出するSUM関数について記載しています。

対応データベース:SQL Server MySQL Oracle PostgreSQL DB2 SQLite Access ANSI

SUM関数の文法

SELECT SUM(列名) FROM テーブル
引数列名数値が収納されている列の列名を指定
返値数値型 合計値

SUM関数は指定された列のNULL値以外の合計値を算出します。

DISTINCTを指定した場合は、引数で指定された列の重複を除いた合計値を算出します。ALLを指定した場合、引数で指定された列のすべての値から合計値を算出します。DISTINCT、ALLのどちらも指定しない場合は、ALLを指定した場合と同様の挙動になります。また、group by句と併せて指定するとGROUP BYで指定した列のデータ毎の合計値を算出します。SUM関数は数値型の列にのみ使用できます。

実行例

社員テーブル

社員名(EMP_NAME)年齢(EMP_AGE)性別(EMP_SEX)時給(EMP_SALARY)
山田太郎201,000
鈴木花子351,500
竹下次郎422,500
佐藤梅子18800
ジュン鎌田20800
田中誠二382,500

MySQLの実行例

/* MySQLで時給の合計を求めるサンプル */
SELECT SUM(EMP_SALARY) FROM testdb.MST_EMPLOYEE;
MySQLで時給の合計を求めるサンプル実行結果
/* MySQL年齢ごとに時給の合計を求めるサンプル */
SELECT SUM(EMP_SALARY) FROM testdb.MST_EMPLOYEE GROUP BY EMP_AGE;
MySQL年齢ごとに時給の合計を求めるサンプル実行結果

SQLServerの実行例

/* SQLServerで時給の合計を求めるサンプル */
SELECT SUM(EMP_SALARY) FROM [testdb].[dbo].[MST_EMPLOYEE];
SQLServerで時給の合計を求めるサンプル実行結果
/* SQLServer年齢ごとに時給の合計を求めるサンプル */
SELECT SUM(EMP_SALARY) FROM [testdb].[dbo].[MST_EMPLOYEE] GROUP BY EMP_AGE;
SQLServer年齢ごとに時給の合計を求めるサンプル実行結果
タイトルとURLをコピーしました