SQLiteの集計関数を完全解説!COUNT・SUM・AVG・MIN・MAXの使い方と活用例

SQLiteは軽量で扱いやすいデータベースとして、多くのアプリケーションやツールで利用されています。データの集計や分析を行う際に欠かせないのが、集計関数(COUNT, SUM, AVG, MIN, MAX)です。これらの関数を使いこなすことで、データの傾向や重要な指標を簡単に抽出できます。この記事では、SQLiteにおける各集計関数の基本的な使い方と具体的な活用例をわかりやすく解説します。SQL初心者の方でも実践できる内容ですので、ぜひ参考にしてください。


SQLiteの集計関数とは?

集計関数とは、複数の行の値をまとめて計算し、1つの結果を返す関数です。SQLiteでは以下のような関数が代表的です。

  • COUNT():行数を数える
  • SUM():合計を求める
  • AVG():平均値を求める
  • MIN():最小値を求める
  • MAX():最大値を求める

これらは、SELECT文の中で使用され、グループ集計や全体の統計を出す場面で活躍します。


COUNT関数の使い方:行数を数える

COUNT()は、指定した列に値が入っている行の数を返す関数です。

SELECT COUNT(*) FROM users;

この例では、usersテーブルに存在する全行数をカウントします。

SELECT COUNT(email) FROM users;

このように列を指定すると、email列がNULLでない行のみをカウントします。

活用例

  • 全ユーザー数の集計
  • ログイン履歴でログイン回数をカウント
  • 商品レビュー数のカウント など

SUM関数の使い方:合計を求める

SUM()は、指定した列の数値の合計を返します。

SELECT SUM(price) FROM orders;

このクエリでは、ordersテーブルのprice列にあるすべての価格の合計を求めます。

活用例

  • 月間売上の合計
  • 特定商品の販売数合計
  • 在庫商品の合計金額 など

AVG関数の使い方:平均を求める

AVG()は、指定した列の平均値を返します。NULLは無視されます。

SELECT AVG(score) FROM test_results;

このクエリは、test_resultsテーブルのscore列にある数値の平均を算出します。

活用例

  • 試験の平均点
  • 商品レビューの平均スコア
  • 平均購入金額の計算 など

MIN関数の使い方:最小値を求める

MIN()は、指定した列の最小値を返します。

SELECT MIN(price) FROM products;

このクエリでは、productsテーブルにある最も安い商品の価格を取得します。

活用例

  • 最安値商品の特定
  • 最も早い日付のレコード取得
  • 最短所要時間の検索 など

MAX関数の使い方:最大値を求める

MAX()は、指定した列の最大値を返します。

SELECT MAX(price) FROM products;

このクエリでは、productsテーブルにある最も高額な商品の価格を取得します。

活用例

  • 最高得点の特定
  • 最も売れた商品の特定
  • 最長滞在時間の算出 など

GROUP BYとの組み合わせでより高度な集計を実現

集計関数は、GROUP BY句と組み合わせることで、グループごとの集計が可能になります。

SELECT category, COUNT(*) FROM products GROUP BY category;

このクエリは、各カテゴリごとに商品の数をカウントします。

SELECT department, AVG(salary) FROM employees GROUP BY department;

部署ごとの平均給与を出すことも簡単に行えます。


WHERE句との併用で条件付き集計

集計関数はWHERE句とも組み合わせることができます。

SELECT COUNT(*) FROM users WHERE gender = 'female';

このクエリでは、女性ユーザーの数を数えています。

SELECT SUM(price) FROM orders WHERE order_date >= '2025-01-01';

2025年以降の売上合計も簡単に取得できます。


HAVING句との違いと使い分け

HAVING句はGROUP BYで集計した後の結果に対して条件を指定するために使います。

SELECT category, COUNT(*) FROM products GROUP BY category HAVING COUNT(*) > 10;

これは「10個以上の商品があるカテゴリ」のみを抽出します。WHERE集計前の絞り込みHAVING集計後の絞り込みに使うという点がポイントです。


実用例:売上データを集計してレポートを作成

以下のような売上テーブルがあると仮定します。

order_idcustomer_idamountorder_date
110112002025-01-10
21028002025-01-11
31016002025-01-12

以下のようなSQLで様々なレポートが作れます。

  • 月間売上合計:
SELECT SUM(amount) FROM sales WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';
  • 顧客ごとの購入回数:
SELECT customer_id, COUNT(*) FROM sales GROUP BY customer_id;
  • 平均購入金額:
SELECT AVG(amount) FROM sales;

まとめ

SQLiteの集計関数は、データ分析において非常に強力なツールです。COUNT, SUM, AVG, MIN, MAXを使いこなすことで、データの傾向をすばやく把握でき、レポート作成や業務効率化に大いに役立ちます。特にGROUP BYHAVINGとの組み合わせを覚えると、さらに幅広い集計が可能になります。

日常業務やアプリ開発でSQLiteを使用している方は、ぜひこの記事を参考にして、集計関数を活用してみてください。

タイトルとURLをコピーしました