カテゴリ: 基本情報技術者試験 更新日: 2025/10/31

集合関数とは?SQLでデータを集計する基本をわかりやすく解説!

集合関数
集合関数

先生と生徒の会話形式で理解しよう

生徒

「先生、SQLの集合関数(シュウゴウカンスウ)ってよく聞くけど、何をするものなんですか?」

先生

「集合関数は、データベース(Database/データベース)にあるたくさんのデータをまとめて計算するための関数のことです。例えば、売上の合計や平均、社員数などを求めるときに使います。」

生徒

「なるほど!個別のデータを見るんじゃなくて、全体を集計するときに使うんですね?」

先生

「そうです!SQL(エスキューエル/Structured Query Language)では、集計処理をするためにCOUNT(カウント)やSUM(サム)などの集合関数を使います。実際に見てみましょう!」

基本情報技術者試験をこれから学習する人や、 独学で確実に合格レベルまで到達したい人におすすめの定番対策書です。

いちばんやさしい 基本情報技術者を見る

※ Amazonアソシエイト広告リンク

1. 集合関数(シュウゴウカンスウ)とは?

1. 集合関数(シュウゴウカンスウ)とは?
1. 集合関数(シュウゴウカンスウ)とは?

集合関数とは、複数のデータをまとめて計算するための関数です。通常のSELECT文(セレクトブン)が「1件ずつデータを取得」するのに対し、集合関数は「全体の集計結果」を1つの値として返します。データベースの分析やレポート作成などで非常によく使われます。

主な集合関数には次のようなものがあります。

  • COUNT():データの件数を数える
  • SUM():合計値を求める
  • AVG():平均値を求める
  • MAX():最大値を求める
  • MIN():最小値を求める

これらを使いこなすことで、膨大なデータから瞬時に統計情報を取り出すことができます。

2. COUNT関数(カウント)で件数を数える

2. COUNT関数(カウント)で件数を数える
2. COUNT関数(カウント)で件数を数える

COUNT関数は、テーブル内のレコード数を数えるときに使います。たとえば、社員テーブルの人数を知りたい場合は次のように書きます。

SELECT COUNT(*) FROM employees;

この命令を実行すると、社員の総人数が1件の結果として返ります。COUNTは特定の列だけを対象にすることも可能です。

SELECT COUNT(salary) FROM employees;

この場合、給与(salary)がNULL(ヌル)でないデータだけをカウントします。

3. SUM関数(サム)で合計を求める

3. SUM関数(サム)で合計を求める
3. SUM関数(サム)で合計を求める

SUM関数は、指定した列の合計値を求めます。たとえば、売上データの合計金額を出す場合は次のように書きます。

SELECT SUM(amount) FROM sales;

このようにすると、すべての売上金額を合計した結果を1つの数値として返します。数値型(スウチガタ)の列であれば、SUM関数を使うことができます。

4. AVG関数(エーブイジー)で平均値を求める

4. AVG関数(エーブイジー)で平均値を求める
4. AVG関数(エーブイジー)で平均値を求める

AVG関数は、指定した列の平均値を計算します。たとえば、社員の平均給与を求めたいときは次のように書きます。

SELECT AVG(salary) FROM employees;

AVG関数はNULL(ヌル)を自動的に除外して平均を求めるため、未入力データがあっても正しい平均値を算出できます。

5. MAX関数(マックス)とMIN関数(ミン)で最大値・最小値を求める

5. MAX関数(マックス)とMIN関数(ミン)で最大値・最小値を求める
5. MAX関数(マックス)とMIN関数(ミン)で最大値・最小値を求める

MAX関数は最大値、MIN関数は最小値を求めるときに使います。たとえば、社員の最高給与と最低給与を調べたい場合は次のように書きます。

SELECT MAX(salary), MIN(salary) FROM employees;

この結果、最も高い給与と最も低い給与が1件ずつ表示されます。数値だけでなく、日付や文字列にも使うことができます。たとえば、最新の注文日を調べるときもMAX関数を使います。

SELECT MAX(order_date) FROM orders;

このように、集合関数は単なる数値の計算にとどまらず、さまざまなデータ型に対応しています。

6. GROUP BY句(グループバイク)と組み合わせて使う

6. GROUP BY句(グループバイク)と組み合わせて使う
6. GROUP BY句(グループバイク)と組み合わせて使う

集合関数は、GROUP BY句(グループバイク)と組み合わせることでさらに強力になります。たとえば、部署ごとの社員数を求めたいときは次のように書きます。

SELECT department, COUNT(*) 
FROM employees 
GROUP BY department;

この命令により、部署(department)ごとに社員数が集計されます。GROUP BY句と組み合わせると、グループ単位での統計を取ることができるのが特徴です。

7. 集合関数の動作の特徴

7. 集合関数の動作の特徴
7. 集合関数の動作の特徴

集合関数を使うときに覚えておくべき重要なポイントがあります。

  • NULL(ヌル)は自動的に除外される(COUNT(*)を除く)
  • WHERE句で条件を絞ってから集計できる
  • HAVING句を使うと、集計結果に対して条件を付けられる

たとえば、平均給与が30万円以上の部署だけを表示したい場合は、HAVING句を使って次のように書けます。

SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) >= 300000;

このように、WHERE句が「集計前の条件」なのに対し、HAVING句は「集計後の条件」を指定するという違いがあります。

8. 実務での集合関数の活用例

8. 実務での集合関数の活用例
8. 実務での集合関数の活用例

集合関数は、業務システムやWebアプリなどで頻繁に使われます。たとえば、売上管理システムでは「月ごとの売上合計」や「商品の平均単価」を求めるときにSUMやAVGを使います。また、人事システムでは「部署ごとの社員数」や「最高給与の社員」などを求めるときにCOUNTやMAXが活躍します。

このように集合関数は、データ分析の基本となる機能です。レポート出力やダッシュボードの裏側では、これらの関数が必ずといっていいほど使われています。

9. 集合関数の歴史と発展

9. 集合関数の歴史と発展
9. 集合関数の歴史と発展

集合関数の考え方は、リレーショナルデータベース(RDB/アールディービー)が誕生した1970年代に生まれました。当時、データを「集合(セット)」として扱う数学的な発想が導入され、そこから「集合関数」という名前が生まれました。今日では、MySQL(マイエスキューエル)・PostgreSQL(ポストグレスキューエル)・Oracle(オラクル)・SQL Server(エスキューエルサーバー)など、あらゆるデータベースで標準的に使える関数となっています。

また、クラウド型のデータベースサービスやビッグデータ分析ツールでも集合関数は重要な役割を果たしています。大量のデータをすばやく集計するための基礎となるからです。

カテゴリの一覧へ
新着記事
New1
基本情報技術者試験
フラグメンテーションとは?補助記憶装置の仕組みを初心者向けにやさしく解説
新規投稿
New2
基本情報技術者試験
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
更新記事
New3
基本情報技術者試験
IPv6とは?初心者でもわかる次世代IPアドレスの基本と特徴
更新記事
New4
基本情報技術者試験
補助記憶装置のサーチとは何かを初心者向けにやさしく丁寧に解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
237
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.4
Java&Spring記事人気No4
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.5
Java&Spring記事人気No5
基本情報技術者試験
IMAPとは?初心者でもわかるメール受信プロトコルの仕組みと使い方
No.6
Java&Spring記事人気No6
基本情報技術者試験
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.7
Java&Spring記事人気No7
基本情報技術者試験
CPUとは何かを完全解説!初心者でもわかるコンピュータの頭脳の仕組み
No.8
Java&Spring記事人気No8
基本情報技術者試験
パケットとは?初心者にもわかりやすくネットワークの仕組みをやさしく解説!