概要 :このチュートリアルでは、SQLite COUNT
の使用方法を学習します グループ内のアイテムの数を取得する関数。
SQLiteの概要COUNT()
機能
関数COUNT()
グループ内のアイテムの数を返す集計関数です。
たとえば、COUNT()
を使用できます tracks
からトラック数を取得する関数 表、artists
のアーティスト数 テーブルなど。
次に、COUNT
の基本的な構文を示します。 機能:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
引数
COUNT
関数は、渡した引数とオプションALL
に従って動作します。 またはDISTINCT
指定します。
以下にALL
の意味を説明します およびDISTINCT
オプション:
ALL
:すべてを指定すると、COUNT()
関数は、重複を含むすべてのnull以外の値をカウントします。COUNT()
関数はALL
を使用します スキップした場合のデフォルトのオプション。-
DISTINCT
:DISTINCT
を明示的に使用する場合 オプション、COUNT
関数は、一意のnull以外の値のみをカウントします。
式は、列または関数COUNT()
が含まれる列を含む式にすることができます。 適用されます。
SQLiteは、COUNT()
の別の構文を提供します 機能:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
COUNT(*)
関数は、NULLと重複を含む行を含む、テーブル内の行数を返します。
SQLite COUNT()
関数の図
まず、t1
というテーブルを作成します 1つの列があります:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
次に、5行をt1
に挿入します テーブル:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
第三に、t1
からデータをクエリします テーブル:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
第4に、COUNT(*)
を使用します t1
の行数を返す関数 テーブル:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
出力から明らかなように、結果セットにはNULLと重複行が含まれています。
5番目に、COUNT(expression)
を使用します c
列のnull以外の値の数を取得します :
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
この例では、COUNT(c)
null以外の値の数を返します。重複する行を個別の行としてカウントします。
6番目に、COUNT(DISTINCT expression)
を使用します 列c
の一意の非null値の数を取得します :
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
例
テーブルtracks
を取得します COUNT(*)
の機能を示すためのサンプルデータベース 機能。
1)SQLite COUNT(*)
例
tracks
から行数を取得するには テーブルでは、COUNT(*)
を使用します 次のように機能します:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
試してみてください
count(*)
--------
3503
Code language: plaintext (plaintext)
2)SQLite COUNT(*)
WHERE
を使用 条項の例
次のステートメントは、COUNT(*)
を使用しています WHERE
で機能する アルバムIDが10のトラックの数を検索する句:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
試してみてください
COUNT(*)
--------
14
3)SQLite COUNT(*)
GROUP BY
を使用 条項の例
すべてのアルバムと各アルバムのトラック数を取得するには、COUNT(*)
を組み合わせます。 GROUP BY
で機能する 条項:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
試してみてください
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
この例では:
- まず、
GROUP BY
条項グループはアルバムIDで追跡します。 - 次に、
COUNT(*)
関数は、各アルバムまたはトラックのグループのトラック数を返します。
4)SQLite COUNT(*)
HAVING
条項の例
以下はCOUNT(*)
を使用しています HAVING
で 25トラックを超えるアルバムを検索する句:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
試してみてください
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5)SQLite COUNT(*)
INNER JOIN
を使用 条項の例
上記のクエリの出力をより便利にするために、アルバムの名前の列を含めることができます。これを行うには、INNER JOIN
を追加します およびORDER BY
次のクエリのようなクエリの句:
SELECT
tracks.albumid,
title,
COUNT(*)
FROM
tracks
INNER JOIN albums ON
albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING
COUNT(*) > 25
ORDER BY
COUNT(*) DESC;
Code language: SQL (Structured Query Language) (sql)
試してみてください
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
例
employees
を見てみましょう サンプルデータベースのテーブル。
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
試してみてください
EmployeeId LastName FirstName Title
---------- -------- --------- -------------------
1 Adams Andrew General Manager
2 Edwards Nancy Sales Manager
3 Peacock Jane Sales Support Agent
4 Park Margaret Sales Support Agent
5 Johnson Steve Sales Support Agent
6 Mitchell Michael IT Manager
7 King Robert IT Staff
8 Callahan Laura IT Staff
役職のタイトル数を取得するには、title
を渡します COUNT()
への列 次のように機能します:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
試してみてください
COUNT(title)
------------
8
ただし、一意のタイトルの数を取得するには、DISTINCT
を追加する必要があります COUNT()
のオプション 次のステートメントに示すように機能します:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
試してみてください
COUNT(DISTINCT title)
---------------------
5
このチュートリアルでは、SQLite COUNT()
の使用方法を説明しました。 グループ内のアイテムの数をカウントする関数。