MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで複数の列から値を計算する方法|SUM関数とGROUP BYの使い方

MySQLで複数の列から値を計算するには、SUM関数とGROUP BY句を組み合わせるのが効果的です。例えば、商品の「価格 × 重量」のような複数列の演算結果を、IDごとに集計したい場合に活用できます。

基本構文

select yourColumnName1, sum(yourColumnName2 * yourColumnName3) AS anyAliasName
from yourTableName
group by yourColumnName1;

この構文では、指定した列同士を演算した結果をSUM関数で合計し、GROUP BYによってグループごとに集計します。ASを使うことで、計算結果に別名を付けて見やすく表示できます。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成します。ここでは商品ID、価格、重量を持つテーブルを例にします。

mysql> create table calculateValueDemo
    -> (
    -> Id int,
    -> ProductPrice int,
    -> ProductWeight int
    -> );
Query OK, 0 rows affected (0.56 sec)

レコードの挿入

次に、INSERTコマンドでテーブルにレコードを挿入します。

mysql> insert into calculateValueDemo values(100,35,5);
Query OK, 1 row affected (0.16 sec)

mysql> insert into calculateValueDemo values(101,50,3);
Query OK, 1 row affected (0.16 sec)

mysql> insert into calculateValueDemo values(100,100,4);
Query OK, 1 row affected (0.17 sec)

mysql> insert into calculateValueDemo values(101,500,2);
Query OK, 1 row affected (0.22 sec)

テーブルの内容を確認

SELECT文で全レコードを表示し、データが正しく登録されているか確認しましょう。

mysql> select * from calculateValueDemo;

実行結果は以下の通りです。

+------+--------------+---------------+
| Id   | ProductPrice | ProductWeight |
+------+--------------+---------------+
| 100  | 35           | 5             |
| 101  | 50           | 3             |
| 100  | 100          | 4             |
| 101  | 500          | 2             |
+------+--------------+---------------+
4 rows in set (0.00 sec)

複数の列から値を計算する

それでは、ProductPrice(価格)とProductWeight(重量)を掛け合わせ、その合計をIDごとに集計するクエリを実行します。

mysql> select Id, sum(ProductPrice * ProductWeight) AS Total from calculateValueDemo group by Id;

実行結果は以下の通りです。

+------+-------+
| Id   | Total |
+------+-------+
| 100  | 575   |
| 101  | 1150  |
+------+-------+
2 rows in set (0.00 sec)

計算結果の解説

この結果は次のように計算されています。

  • Id 100:35 × 5 = 175、100 × 4 = 400 → 合計 575
  • Id 101:50 × 3 = 150、500 × 2 = 1000 → 合計 1150

このように、SUM関数とGROUP BYを組み合わせることで、複数の列を演算した結果をグループ単位で簡単に集計できます。売上金額の算出や在庫重量の集計など、実務でも幅広く活用できるテクニックなので、ぜひ覚えておきましょう。

  1. MySQLで2つの列の最大値を基準にレコードを並べ替える方法

    MySQLでは、GREATEST()関数をORDER BY句と組み合わせることで、2つの列のうち大きい方の値を基準にレコードを並べ替えることができます。この記事では、実際にテーブルを作成しながら、その手順をわかりやすく解説します。1. テーブルの作成まず、2つの整数型の列を持つテーブルを作成します。mysql> create table DemoTable834(   Value1 int,   Value2 int);Query OK, 0 rows affected (1.50 sec)2. レコードの挿入INSERT文を使

  2. 1つのMySQLクエリで複数のカラムのデータ型を変更する方法

    MySQLでは、ALTER TABLE文を使うことで、テーブルのカラム定義を後から変更できます。複数のカラムのデータ型を一度に変更したい場合も、1つのクエリでまとめて実行可能です。基本構文単一のクエリで複数のカラムの型を変更するには、以下のように MODIFY COLUMN をカンマで区切って並べます。ALTER TABLE テーブル名 MODIFY COLUMN カラム名1 データ型1, MODIFY COLUMN カラム名2 データ型2, . . N;サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable (