MySQLでCost(単価)とQuantity(数量)の列から合計金額を計算するクエリ
MySQLでは、SELECT文の中で列同士を乗算することで、「単価 × 数量」のような合計金額を簡単に計算できます。ここでは、Cost(単価)とQuantity(数量)の2つの列を持つテーブルを使い、各行の合計金額を求める手順を解説します。
1. テーブルの作成
まず、Cost列とQuantity列を持つテーブルを作成します。
mysql> create table DemoTable ( Cost int, Quantity int ); Query OK, 0 rows affected (0.80 sec)
2. レコードの挿入
INSERT文を使ってサンプルデータを登録します。
mysql> insert into DemoTable values(65,2); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable values(290,4); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(40,3); Query OK, 1 row affected (0.10 sec)
3. 登録データの確認
SELECT文ですべてのレコードを表示して確認しましょう。
mysql> select *from DemoTable;
実行すると、以下の出力が得られます。
+------+----------+ | Cost | Quantity | +------+----------+ | 65 | 2 | | 290 | 4 | | 40 | 3 | +------+----------+ 3 rows in set (0.00 sec)
4. 合計金額を計算するクエリ
各行の合計金額を求めるには、「Cost * Quantity」のように列同士を乗算し、AS句で結果に別名(エイリアス)を付けます。
mysql> select Cost,Quantity,Cost*Quantity AS Total_Amount from DemoTable;
実行結果は以下のとおりです。「単価 × 数量」の計算結果がTotal_Amount列として表示されます。
+------+----------+--------------+ | Cost | Quantity | Total_Amount | +------+----------+--------------+ | 65 | 2 | 130 | | 290 | 4 | 1160 | | 40 | 3 | 120 | +------+----------+--------------+ 3 rows in set (0.02 sec)
補足:全行の合計を1つの値として取得するには
すべての行の合計金額をまとめて取得したい場合は、SUM関数を組み合わせます。
mysql> select SUM(Cost*Quantity) AS Grand_Total from DemoTable;
このクエリを実行すると、130 + 1160 + 120 = 1410 という合計値が1行で返されます。明細ごとの金額表示には乗算、請求書の合計欄などにはSUM関数、というように用途に応じて使い分けると便利です。
-
「UP」という同じ名前の列を持つ5つのテーブルの合計を計算するMySQLクエリ
解決方法の概要 「UP」という同じ名前の列を持つ複数のテーブルから合計値を計算するには、UNION ALLとSUM()関数を組み合わせて使用します。各テーブルごとにSUM()で合計を求め、UNION ALLでその結果を縦に連結し、最後に外側のSUM()によって全体の合計値を取得します。 サンプルテーブルの作成 まず、動作確認用に5つのテーブルを作成します。1つ目のテーブルは以下のように作成し、データを挿入します。 mysql> create table DemoTable1977 ( UP int ); Query OK, 0 rows affected (0.0
-
MySQLで2つの列のすべての値をカウントし、NULL値を除外する方法
MySQLでは、COUNT関数を組み合わせることで、複数の列に含まれるすべての値をカウントできます。COUNT関数はNULL値を自動的に除外するため、NULLが混在するデータでも正確な合計件数を取得できるのが特徴です。ここでは、2つの列の値をカウントし、NULL値を除外した合計カウントを求める方法を具体的な例で解説します。 1. サンプルテーブルの作成 まず、学生名と点数を格納するテーブルを作成します。 mysql> create table DemoTable1975 ( StudentNa