データ分析に欠かせない「集計関数」について

第4回となる今回は、データ分析に欠かせない集計関数について説明します。

久保 司

2023年1月17日 6:30

はじめに

新しい年を迎え4回目となる今回のSQL-BOOTCAMPでは、データ分析には欠かせない集計関数について説明します。便利で強力な関数なので、ぜひ使い方をマスターしてください。

訓練に使用するデータベースは、これまでに引き続き、いつもの「SQLite」を使用していきます。

それでは、今回も張り切って訓練へ行ってみましょう!

強力な武器その4(集計関数)

集計関数とは、ある項目に対して合計したり、平均値を求めたり、あるいはデータ件数を取得したり等、その名の通り集計を行う関数です。都度計算をする必要がないので、データ分析等に利用すると便利な関数です。今回は、下表に示す基本的な5つの集計関数を紹介します。

また、集計関数を利用する際に項目をグループ単位で集計できる、集計関数には不可欠なGROUP BY句も併せて紹介します。

第1回、第2回に引き続き、社員テーブル(tbl_employees)に登録されているデータを使用して説明していきます。今回は集計関数の説明のため、以前利用したテーブルの項目を一部変更したいと思います。社員テーブルを作成済みの場合は、始めに下記のDROPコマンドで社員テーブルを削除してください。その後、再度CREATEコマンドで社員テーブルを作成し、INSERTコマンドでデータを挿入してください。まだ社員テーブルを作成していない場合は、CREATEコマンドから実行してください。

【DROPコマンド】
DROP TABLE tbl_employees;
【CREATEコマンド】
CREATE TABLE tbl_employees (emp_code INTEGER , emp_name TEXT , kana TEXT , gender TEXT , age INTEGER , dept_code INTEGER);
【INSERTコマンド】
INSERT INTO tbl_employees (emp_code,emp_name,kana,gender,age,dept_code)
VALUES
  ('1','HoriiTaro','ホリイタロウ','M','40','1')
, ('2','IshimuraHana','イシムラハナ','F','33','2')
, ('3','KitajimaRuna','キタジマルナ','F','45','3')
, ('4','MuroiYuri',NULL,'F',NULL,'1')
, ('5','KitazawaAika','キタザワアイカ','F','33','1')
, ('6','MitaniKoukiti','ミタニコウキチ','M','23','2');
【社員テーブル作成済みの場合(DROP、CREATE、INSERT)】
【社員テーブル未作成の場合(CREATE、INSERT)】

作成した社員テーブルの内容を確認してみましょう。

.headers on
.mode column

SELECT *  FROM tbl_employees;

*「.headers」「.mode」は表示内容の設定コマンドなので、ログイン後に1回実行すればOKです。

INSERTコマンドで作成した6件のデータを確認できます。

それでは、本題の集計関数に行ってみましょう!

(1)COUNT関数

COUNT関数は、指定された項目Xの件数を返します。ただし、項目Xの値がNULLの場合は件数から除外されます。また、項目Xに「*」(アスタリスク)を指定した場合は、指定したテーブルの行数を返します。

項目Xに「*」を指定した場合と、テーブル項目を指定した場合の使用例を確認してみましょう。

項目Xに「*」を指定してデータ件数を取得する。

SELECT COUNT( * ) FROM tbl_employees;

社員テーブルのデータ件数「6」が返されます。

次に、項目Xに「kana」を指定して実行してみましょう。

SELECT COUNT( kana ) FROM tbl_employees;

結果は「5」となります。

登録したデータを確認してみると、emp_code = 4の「kana」の値がNULLとなっています(SELECTの結果は何も表示されていません)。NULLはCOUNT関数の集計対象とならないので、件数は「5」が返されます。

(2)SUM関数

SUM関数は指定された項目Xの合計を返します。ただし、項目の値がNULLの場合は除外して集計します。

下図の使用例では「年齢」の合計を取得しています。

項目Xに「age」を指定して実行してみます。

SELECT SUM( age ) FROM tbl_employees;

結果は使用例にあるように「age」の合計「174」が返されます。SUM関数もCOUNT関数と同様に、emp_code = 4の「age」のNULL値は対象外となるので注意しましょう。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30