【SQLの基本】count関数を覚えよう|実例付きで実践向き

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔以下の疑問をお持ちの方へ向けた記事です

「SQLのCOUNT関数とは何で、どのように使うのだろうか?」

「SQLのCOUNT関数の使い方を学びたい」

「SQLのCOUNT関数の具体的な使用例を見て理解したい」

✔この記事を読むことで得られる知識

  • SQLのCOUNT関数の基本的な使い方
  • COUNT関数の応用法
  • SQLのCOUNT関数を用いた具体的な使用例

この記事では、SQLのCOUNT関数の基本的な使い方から、その応用法まで、具体的な例を交えて詳細に説明します。

ぜひ最後までお読みください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

SQLとは:概念と基本的な役割

ここでは、「SQL」についてお伝えします。

SQLを理解することで、データベースとの効果的なコミュニケーションが可能になります。

  • SQLの概念と重要性
  • SQLの基本的な役割と使用方法

SQLの概念と重要性

SQL(Structured Query Language)は、データベースから情報を取得、操作、更新するための標準的なプログラミング言語です。

データ分析からウェブ開発、データベース管理まで、多岐にわたる業務で必須とされています。

そのため、SQLの理解は、IT領域でのキャリアにおいて非常に重要なスキルです。

SQLの基本的な役割と使用方法

SQLの主な役割は、データベースとのコミュニケーションをおこなうことです。

具体的には、以下のようなことが可能です。

  • データベースからデータを選択(SELECT)
  • 挿入(INSERT)
  • 更新(UPDATE)
  • 削除(DELETE)

データベースの構造自体を定義(CREATE)や変更(ALTER)、削除(DROP)することもできます。

SQLの基本的なコマンド

このセクションでは、「SQLの基本的なコマンド」について解説します。

これらのコマンドを理解することで、データベースのデータを効率的に操作できるようになります。

  • SELECT文:データの抽出
  • FROM句:データの取得元指定
  • WHERE句:データのフィルタリング

SELECT文:データの抽出

SELECT文は、データベースからデータを抽出するためのコマンドです。

SELECT文を使うと、必要なデータだけをデータベースから選択することができます。

"SELECT name FROM employees;

“employees”というテーブルから”name”という列のデータをすべて抽出します。

FROM句:データの取得元指定

FROM句は、データを取得するテーブルを指定するためのコマンドです。

SELECT 列名 FROM テーブル名;

テーブルから列名を選択し、抽出します。

WHERE句:データのフィルタリング

WHERE句は、特定の条件を満たすデータだけを抽出するためのコマンドです。

WHERE句はSELECT文と一緒に使用され、以下のような形式で書かれます。

SELECT 列名 FROM テーブル名 WHERE 条件;

例えばこちらのクエリでは、「age > 30」がWHERE句で指定された条件です。

SELECT name FROM employees WHERE age > 30;

このクエリは、”employees”テーブルから”age”列が30を超える”name”列を選択します。

COUNT関数とは:定義と基本的な使用法

ここでは、「COUNT関数」について詳しく説明します。

COUNT関数を理解することで、データベースからの情報取得がより効率的になります。

  • COUNT関数の概念と重要性
  • COUNT関数の基本的な使用方法
  • NULLの扱い:COUNT関数とNULL値

COUNT関数の概念と重要性

COUNT関数は、SQLの集計関数の一つで、特定の条件を満たす行の数を数えるのに使います

例えば、社員データが保存されているテーブルがあり、その中の特定の部署に所属する社員の人数を知りたい場合には、COUNT関数を使用します。

このように、COUNT関数はデータ分析において頻繁に使用され、大量のデータから有益な情報を抽出するのに非常に重要なツールとなります。

COUNT関数の基本的な使用方法

COUNT関数の基本的な使用方法は、以下の形式となります。

SELECT COUNT(列名) FROM テーブル名;

ここで、列名はカウントしたい列を指定します。

SELECT COUNT(id) FROM employees;

“employees”テーブルの”id”列の全レコード数を返します。

COUNT関数はWHERE句と一緒に使うこともでき、特定の条件を満たすレコードだけを数えることができるのです。

NULLの扱い:COUNT関数とNULL値

COUNT関数はNULL値をカウントしません。

カウント対象の列にNULL値が含まれている場合、その行はカウントから除外されます。

SELECT COUNT(*) FROM テーブル名;

NULL値が含まれている列があっても、その行はカウントされます。

これはCOUNT(*)が全ての行をカウントするためです。

COUNT関数の基本的な使用方法

このセクションでは、COUNT関数のさらに詳しい使用方法について解説します。

これらを理解することで、COUNT関数をより効果的に使用することが可能になります。

  • 特定の列のデータ数を数える方法
  • 条件を満たすデータの数を数える方法
  • 重複を回避するためのDISTINCTキーワードの使用方法

特定の列のデータ数を数える方法

特定の列のデータ数を数えるためには、COUNT関数を使い、その内部に列名を指定します。

SELECT COUNT(id) FROM employees;

これにより、”employees”テーブルに存在する社員の総数が得られます。

条件を満たすデータの数を数える方法

特定の条件を満たすデータの数を数えるには、COUNT関数とWHERE句を組み合わせます。

SELECT COUNT(*) FROM employees WHERE age >= 30;

このクエリにより、30歳以上の社員の数が得られます。

重複を回避するためのDISTINCTキーワードの使用方法

DISTINCTキーワードは、COUNT関数と一緒に使うことで、重複する値をひとつとしてカウントできます。

“employees”テーブルの”department”列には重複する値(同じ部署に所属する社員)が存在するかもしれません。

SELECT COUNT(DISTINCT department) FROM employees;

重複を排除した部署の数、つまり会社の部署の総数が得られます。

COUNT関数とGROUP BYの組み合わせ

このセクションでは、COUNT関数とGROUP BYの組み合わせについて解説します。

これらを組み合わせることで、より詳細なデータ分析が可能になります。

  • GROUP BYとは:定義と基本的な使用法
  • COUNT関数とGROUP BYを組み合わせた使用例

GROUP BYとは:定義と基本的な使用法

GROUP BY句は、特定の列の値に基づいて結果セットをグループ化するSQLの構文です。

これにより、各グループに対して集計関数(COUNT、SUM、AVGなど)を適用できます。

基本的な形式はこちら。

SELECT 列名, 集計関数 FROM テーブル名 GROUP BY 列名;

以下は、具体例です。

まずはテーブル作成とレコードの登録です。

-- Productsテーブル作成
CREATE TABLE Products (
  ProductID INT PRIMARY KEY,
  ProductName VARCHAR(50),
  Category VARCHAR(50),
  Price DECIMAL(10, 2)
);

-- レコード登録
INSERT INTO Products (ProductID, ProductName, Category, Price)
VALUES (1, 'Product A', 'Category 1', 10.50),
       (2, 'Product B', 'Category 1', 15.75),
       (3, 'Product C', 'Category 2', 20.00),
       (4, 'Product D', 'Category 2', 12.25),
       (5, 'Product E', 'Category 3', 8.90),
       (6, 'Product F', 'Category 3', 14.50),
       (7, 'Product G', 'Category 3', 19.99);

表示してみましょう。

SELECT Category, COUNT(*) AS TotalCount FROM Products GROUP BY Category;

結果はこちら。

CategoryTotalCount
Category 12
Category 22
Category 33

SQL Fiddleを使うとブラウザから遊べます。

SQL Fiddle - Online SQL Compiler for learning & practice
Discover our free online SQL editor enhanced with AI to chat, explain, and generate code. Support SQL Server, MySQL, Mar...

COUNT関数とGROUP BYを組み合わせた使用例

COUNT関数とGROUP BYを組み合わせることで、特定の属性に基づいてレコードをグループ化し、各グループのレコード数をカウントできます。

例えば、”employees”テーブルで各部署の社員数を知りたい。

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

これにより、各部署の社員数が得られます。

次に、他の集計関数との比較について見ていきましょう。

他の集計関数との比較

このセクションでは、COUNT関数と他の集計関数との比較について説明します。

これにより、どの関数を使用するのが適切かを理解できます。

  • AVG、SUM、MAX、MINなどの集計関数との比較

AVG、SUM、MAX、MINなどの集計関数との比較

一覧で見てみましょう。

集計関数説明
COUNT特定の条件を満たす行の数をカウントするSELECT COUNT(*) FROM Employees;
AVG列の平均値を計算するSELECT AVG(Salary) FROM Employees;
SUM列の合計値を計算するSELECT SUM(Sales) FROM Orders;
MAX列の最大値を取得するSELECT MAX(Age) FROM Employees;
MIN列の最小値を取得するSELECT MIN(Price) FROM Products;

集計関数の使用例

さらに具体的に、集計関数の使用例を見てみましょう。

“employees”テーブルから、社員の平均年齢を計算するにはこちら。

SELECT AVG(age) FROM employees;

社員の最高年齢を知りたい場合は以下のようにします。

SELECT MAX(age) FROM employees;

これらのクエリはそれぞれAVG関数とMAX関数を使用しています。

次に、COUNT関数の注意点とトラブルシューティングについて見ていきましょう。

COUNT関数の注意点とトラブルシューティング

このセクションでは、COUNT関数の使用上の注意点と、一般的なエラーの解決策について説明します。

COUNT関数をより効果的に使えるでしょう。

  • COUNT関数のパフォーマンス
  • COUNT関数の一般的なエラーとその解決策

COUNT関数のパフォーマンス

COUNT関数は、大量のデータが存在するテーブルで使用するとパフォーマンスが低下する可能性があります。

SELECT COUNT(*) FROM テーブル名;

全ての行をカウントする場合、データベースは全ての行をスキャンする必要があるため、時間がかかることがあります。

パフォーマンスを向上させるためには、可能な限り具体的な条件を指定してカウントすることが有効です。

COUNT関数の一般的なエラーとその解決策

COUNT関数の一般的なエラーのひとつとして、カウント結果が予期したものより少なくなることが挙げられます。

その理由は、COUNT関数はNULL値をカウントしないからです。

これを避けるためには、データ挿入時にNULL値が入らないように注意するか、”COUNT(*)”を使用して全ての行をカウントしましょう。

もしくはCOUNT関数を使用しているにも関わらず結果が返らない場合は、WHERE句の条件が厳しすぎてマッチするレコードがない可能性があります。

この場合、WHERE句の条件を見直すか、条件なしでCOUNT関数を試してみてください。

まとめ

当記事では、ご説明したことは以下のとおり。

  • SQLの概念と基本的な役割
  • SQLの基本的なコマンド
  • SELECT文、FROM句、WHERE句
  • COUNT関数の定義、基本的な使用方法、NULL値の扱い方

今後のSQLスキル向上のためには、まずは実際のデータセットを使って、本記事で学んだSQLのコマンドやCOUNT関数の使用方法を実践することをおすすめします。

具体的な問題を解決しながらSQLを使うことで、理論的な知識だけでなく実践的なスキルも身につけましょう。

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