最終更新日2020年2月26日08:07:42(UTC / GMT +8時間)
COUNT()関数
SQL COUNT()関数は、条件を満たすテーブルの行数を返します。 WHERE句で指定されます。行数またはNULL以外の列値を設定します。
COUNT()は、一致する行がない場合は0を返します。
構文:
COUNT(*)COUNT( expression )
上記の構文は、一般的なSQL 2003ANSI標準構文です。これは、SQL COUNT()関数の使用方法を理解するのに役立ちます。ただし、データベースベンダーが異なれば、COUNT()関数の適用方法も異なる可能性があります。
以下では、MySQL、PostgreSQL、およびMicrosoft SQLServerが上記と同じ構文に従っていることがわかります。ただし、DB2とOracleはわずかに異なります。
全体として、*、ALL、DISTINCT、またはCOUNTとともに何らかの式を使用して、行数をカウントできます。 COUNT()関数とともに使用している引数に応じて、一部の条件またはすべての行。
DBMSサポート:COUNT()関数
DBMS | コマンド |
MySQL | サポート |
PostgreSQL | サポート |
SQLサーバー | サポート |
Oracle | サポート |
DB2およびOracle構文:
COUNT ({*| expression}) OVER (window_clause)
パラメーター:
名前 | 説明 |
---|---|
ALL | すべての値に適用されます。 ALLはNULL以外の値の数を返します。 |
DISTINCT | 重複する値は無視され、COUNTは一意のNULL以外の値の数を返します。 |
式 | 単一の定数、変数、スカラー関数、または列名で構成される式。値を他の値と比較するSQLクエリの一部にすることもできます。テキストまたは画像を除くすべてのタイプの表現。集計関数とサブクエリは許可されていません。 |
* | NULLが含まれているかどうかに関係なく、ターゲットテーブルのすべての行をカウントします。 |
構文図-COUNT()関数
次のページでは、さまざまなSQL句を使用してCOUNT()を適用する方法について説明しました。これらのアプリケーションでは、Oracle 10g ExpressEditionを使用しました。
COUNT()関数に関する重要な点:
COUNT()に*を使用すると、すべてのレコード(行)が一部のコンテンツがNULLの場合はカウントされますが、フィールドがNULLの場合はCOUNT(column_name)はレコードをカウントしません。次の例を参照してください。
テーブル内のSQLCOUNT行
次の例では、アスタリスク文字(*)が使用され、その後にすべての行を示すSQL COUNT()が続きます。
サンプルテーブル:orders
「orders」テーブルの行数を取得するには、次のSQLステートメントを使用できます。
SQLコード:
出力:
COUNT(*)--------- 34
図による表示:
複数のテーブルからCOUNT(*)を選択します
次のクエリCOUNT COUNT(*)コマンドを使用した2つの異なるテーブル(ここでは従業員と部門を使用)の行数。
SQLコード:
出力:
TOTAL_EMPLOYEES NO_OF_DEPARTMENTS--------------- ----------------- 107 27
列名のSQLCOUNT()
この例では、SQL COUNT()関数は次のNULL値を除外します。 COUNT関数の括弧内の引数として列を指定した場合は特定の列。
サンプルテーブル:listofitem
次の条件で「listofitem」テーブルの行数を取得するには-
1。列「coname」のCOUNT行数
次のSQL文を使用できます:
SQLコード:
出力:
COUNT(CONAME)------------- 2
説明:
上記のステートメントは、NULLではない「coname」列の行をカウントします。
ユーザー定義の列見出しを持つSQLCOUNT行
次の条件で「orders」テーブルの行数を取得するには-
1。結果は「行数」という見出しで表示する必要があります。
次のSQL文を使用できます。
SQLコード:
出力:
Number of Rows-------------- 36
SQLCOUNT()とwhere句
WHERE句は特定の条件に対してテーブルから特定のレコードを選択するSQLCOUNT()関数。
例:
サンプルテーブル:orders
次の条件で「orders」テーブルの行数を取得するには-
1。注文に対するord_amountが1500を超えている場合、
次のSQLステートメントを使用できます:
出力:
Number of Rows-------------- 22
COUNT()関数の適用
以降のページでは、さまざまなSQL句を使用してCOUNT()を適用する方法について説明しました。これらのアプリケーションでは、Oracle 10g ExpressEditionを使用しました。
COUNT with DISTINCTページでは、COUNT関数をDISTINCTで適用する方法と、COUNT関数をALL句で適用する方法について説明します。 *の使用とは異なり、ALLを使用すると、NULL値は選択されません。
COUNT HAVINGページでは、HAVING句を使用したCOUNT関数とHAVINGおよびGROUPBYを適用する方法について説明します。
GROUPを使用したCOUNT BYページでは、COUNT関数withGROUPBYを昇順および降順で適用する方法について説明しています。
注:ここに示すSQLステートメントの出力は、Oracle Database 10g ExpressEditionを使用して取得されます。
これがすべての集約関数のスライドプレゼンテーションです。
SQL演習の練習
- SQL演習、練習、ソリューション
- SQLテーブルからデータを取得する
- SQLブール演算子とリレーショナル演算子
- SQLワイルドカード演算子と特殊演算子
- SQL集計関数
- SQLフォーマットクエリ出力
- 複数のテーブルでのSQLクエリ
- HRデータベースでのフィルタリングと並べ替え
- SQL JOINS
- SQL JOINS
- SQL JOINS on HRデータベース
- SQLサブクエリ
- SQLサブクエリ
- SQL SU HRデータベースのBQUERIES
- SQL Union
- SQL View
- SQLユーザーアカウント管理
- ムービーデータベース
- ムービーデータベースのBASICクエリ
- ムービーデータベースのサブクエリ
- ムービーデータベースのJOINS
- サッカーデータベース
- はじめに
- サッカーデータベースの基本クエリ
- サッカーデータベースのサブクエリ
- サッカーデータベースのJOINSクエリ
- 病院データベース
- はじめに
- 基本、サブクエリ、および参加
- 従業員データベース
- 従業員データベースの基本クエリ
- 従業員データベースのサブクエリ
- 詳細はこちら!