SQL COUNT()関数

最終更新日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クエリ
  • 病院データベース
    • はじめに
    • 基本、サブクエリ、および参加
  • 従業員データベース
    • 従業員データベースの基本クエリ
    • 従業員データベースのサブクエリ
  • 詳細はこちら!

Leave a Reply

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です