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
を使うことで、特定の条件を満たすデータの集約が可能。
これらのテクニックを組み合わせることで、実践的なデータ分析が可能になります。