MySQLでテーブルの値に基づいて整数を合計する効果的な方法とは?
MySQLでテーブルの値ごとに整数を合計する方法
テーブルの値に基づいて整数を合計するには、GROUP BY句を使用します。GROUP BY句を使うことで、特定のカラムの値ごとにレコードをグループ化し、SUM関数で各グループの合計値を求めることができます。
まず、サンプル用のテーブルを作成しましょう。
mysql> create table DemoTable1443
-> (
-> StudentId int,
-> StudentScore int
-> );
Query OK, 0 rows affected (0.42 sec)
次に、INSERT文を使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable1443 values(100,78);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1443 values(101,89);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1443 values(100,88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1443 values(101,97);
Query OK, 1 row affected (0.12 sec)
SELECT文ですべてのレコードを表示して確認します。
mysql> select * from DemoTable1443;
実行すると、以下のような結果が出力されます。
+-----------+--------------+
| StudentId | StudentScore |
+-----------+--------------+
| 100 | 78 |
| 101 | 89 |
| 100 | 88 |
| 101 | 97 |
+-----------+--------------+
4 rows in set (0.00 sec)
ここで、StudentIdが「100」のレコードが2件、「101」のレコードが2件登録されていることがわかります。続いて、テーブルの値(StudentId)に基づいてスコアを合計するクエリを見ていきましょう。
GROUP BY句とSUM関数を使った集計クエリ
テーブルの値に基づいて整数を合計するには、以下のようにGROUP BY句とSUM関数を組み合わせます。
mysql> select StudentId,sum(StudentScore) from DemoTable1443
-> group by StudentId;
実行すると、以下のような結果が出力されます。
+-----------+-------------------+
| StudentId | sum(StudentScore) |
+-----------+-------------------+
| 100 | 166 |
| 101 | 186 |
+-----------+-------------------+
2 rows in set (0.00 sec)
上記の出力から、StudentIdが「100」のスコア合計は「78 + 88 = 166」、「101」のスコア合計は「89 + 97 = 186」であることが確認できます。このように、GROUP BY句とSUM関数を組み合わせることで、特定のカラムの値ごとに数値を簡単かつ効率的に集計することが可能です。売上データの集計やアクセスログの分析など、さまざまな場面で活用できる基本的なテクニックなので、ぜひ覚えておきましょう。
-
【MySQL】別のテーブルのカラムを参照してカラムを更新する方法
別のMySQLテーブルのカラム値を参照しながら、現在のテーブルのカラムを更新したい場合には、JOIN(結合)の概念を利用します。ここでは、実際にテーブルを作成しながら、具体的な手順をわかりやすく解説していきます。1つ目のテーブル(更新される側)を作成するまず、更新対象となるテーブル「DemoTable1」を作成しましょう。mysql> create table DemoTable1 -> ( -> Id int, -> Name va
-
Javaを使用してMySQLテーブルの値を表示する方法
MySQLデータベースのテーブル値をJavaで表示するには、ResultSetの概念を利用します。データベースへの接続には、MySQL JDBCドライバーを使用します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table demo87 -> ( -> name varchar(20), -> age int -> )