SQL COUNT() 関数

COUNT() 函数は指定された条件に一致する行数を返します。

SQL COUNT() 文法

SQL COUNT(column_name) 文法

COUNT(column_name) 函数は指定された列の値の数を返します(NULL は除きます):

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*) 文法

COUNT(*) 函数はテーブル内のレコード数を返します:

SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name) 文法

COUNT(DISTINCT column_name) 函数は指定された列の異なる値の数を返します:

SELECT COUNT(DISTINCT column_name) FROM table_name

注釈:COUNT(DISTINCT) は ORACLE および Microsoft SQL Server に適用できますが、Microsoft Access には適用できません。

SQL COUNT(column_name) の例

以下の「Orders」テーブルがあります:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

今、"Carter" 顧客の注文数を計算したいです。

以下の SQL ステートメントを使用します:

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'

以上の SQL ステートメントの結果は 2 です。なぜなら、Carter 顧客が 2 つの注文を持っているからです:

CustomerNilsen
2

SQL COUNT(*) の例

WHERE 子句を省略すると、以下のようになります:

SELECT COUNT(*) AS NumberOfOrders FROM Orders

結果セットは以下のようになります:

NumberOfOrders
6

テーブルの合計行数です。

SQL COUNT(DISTINCT column_name) の例

今、"Orders"テーブルに存在する異なる顧客の数を計算したいです。

以下の SQL ステートメントを使用します:

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

結果セットは以下のようになります:

NumberOfCustomers
3

「Orders」テーブルに存在する異なる顧客(Bush、Carter、Adams)の数です。