PHP | MySQLのSUM()を使ってカラムの合計値を取得する方法

PHP,PHP MySQL

MySQLのSUM()関数を使って指定したひとつの、または複数のカラムの合計値を取得する方法とPHPのサンプルコードを紹介しています。

確認環境

エックスサーバー
PHP 8.016

SUM()でカラムの合計値を取得する

SUM()関数は指定したカラムの合計値を取得します。

第一引数に、合計値を取得したいカラム名を指定します。

サンプルでは以下のデータが格納されたテーブルを利用します。

namevalue
Apple100
Pine200
Banana300
サンプルで利用しているテーブル

SUM()関数を使ってカラムの合計値を取得するPHPのサンプルコードです。

AS句を使って「sum」というキー名を作成しています。

// クエリ
$sql = "SELECT SUM(`value`) AS `sum` FROM `table_name`";

// クエリを実行
$res = $mysqli->query($sql);

$dat = mysqli_fetch_assoc($res);
echo $dat['sum'];
// 600

SUM()関数は、WHERE分で条件を指定する事も可能です。

SUM()で複数のカラムの合計値を取得する

SUM()関数は複数のカラムを指定して合計値を取得する事が可能です。

namevalue1value2
Apple10010
Pine20020
Banana30030

複数のカラムを指定するには、ひとつのSUM()関数の中に複数のカラム名を含めるのではなく、SUM()関数を複数記述します。

AS句を使って結果を格納するキー名を作成している場合、それぞれに指定します。
各キー名にそれぞれの合計値が代入されますので、必要に応じて結果を合計します。

// クエリ
$sql = "SELECT SUM(`value1`) AS `sum1`, SUM(`value2`) AS `sum2` FROM `table_name`";

// クエリを実行
$res = $mysqli->query($sql);
if (!$res) {
	error_log($mysqli->error);
	exit;
}
$dat = mysqli_fetch_assoc($res);

echo $dat['sum1'] + $dat['sum2'];
// 660

PHP,PHP MySQL

Posted by Yousuke.U