SQLの集約関数(Aggregate Functions)は、複数の行に対して計算を行い、単一の値を返す関数です。データの統計的な集計や分析に使用されます。
代表的な集約関数には以下のものがあります:
SUM(): 数値の合計を求める
MAX(): 最大値を求める
MIN(): 最小値を求める
COUNT(): 行数を数える
AVG(): 平均値を求める
商品テーブル
| product_id | product_name | category | price | stock | order_date |
|---|---|---|---|---|---|
| 1 | Laptop | Electronics | 100000 | 5 | 2024-01-05 |
| 2 | Smartphone | Electronics | 70000 | 10 | 2024-01-10 |
| 3 | Tablet | Electronics | 50000 | 7 | 2024-02-01 |
| 4 | Refrigerator | Home Appliance | 120000 | 3 | 2024-03-15 |
| 5 | Washing Machine | Home Appliance | 90000 | 4 | 2024-03-20 |
| 6 | Microwave | Home Appliance | 40000 | 6 | 2024-04-10 |
SUM(): 合計を求める
SELECT SUM(price) AS total_price FROM products;
結果:
| total_price |
|---|
| 470000 |
MAX(): 最大値を求める
SELECT MAX(price) AS max_price FROM products;
結果:
| max_price |
|---|
| 120000 |
MIN(): 最小値を求める
SELECT MIN(price) AS min_price FROM products;
結果:
| min_price |
|---|
| 40000 |
COUNT(): 行数を数える
SELECT COUNT(*) AS product_count FROM products;
結果:
| product_count |
|---|
| 6 |
特定のカラムに値がある行だけをカウントする場合は、
COUNT(カラム名)を使います。
SELECT COUNT(price) AS price_count FROM products;
結果:
| price_count |
|---|
| 6 |
AVG(): 平均値を求める
SELECT AVG(price) AS average_price FROM products;
結果:
| average_price |
|---|
| 78333.33 |
WHERE条件と組み合わせた集約関数の使い方
SELECT SUM(price) AS total_price FROM products WHERE category = 'Electronics';
結果:
| total_price |
|---|
| 220000 |
SELECT MAX(price) AS max_price FROM products WHERE stock > 0;
結果:
| max_price |
|---|
| 120000 |
SELECT COUNT(*) AS recent_orders FROM products WHERE order_date >= '2024-01-01';
結果:
| recent_orders |
|---|
| 6 |
SUM(),
MAX(),
MIN(),
COUNT(),
AVG()などの集約関数を使うと、データの集計が容易になる。
WHEREを使うことで、特定の条件を満たすデータの集約が可能。
これらのテクニックを組み合わせることで、実践的なデータ分析が可能になります。