sql >> データベース >  >> RDS >> MariaDB

MariaDBのCOUNT()関数

    MariaDBでは、COUNT() 集計関数は、SELECTによって取得された行の式のNULL以外の値の数のカウントを返します。 ステートメント。

    サンプルデータ

    次の表があるとします。

    SELECT * 
    FROM Pets;

    結果:

    +-------+-----------+---------+---------+------------+
    | PetId | PetTypeId | OwnerId | PetName | DOB        |
    +-------+-----------+---------+---------+------------+
    |     1 |         2 |       3 | Fluffy  | 2020-11-20 |
    |     2 |         3 |       3 | Fetch   | 2019-08-16 |
    |     3 |         2 |       2 | Scratch | 2018-10-01 |
    |     4 |         3 |       3 | Wag     | 2020-03-15 |
    |     5 |         1 |       1 | Tweet   | 2020-11-28 |
    |     6 |         3 |       4 | Fluffy  | 2020-09-17 |
    |     7 |         3 |       2 | Bark    | NULL       |
    |     8 |         2 |       4 | Meow    | NULL       |
    +-------+-----------+---------+---------+------------+

    次の例では、COUNT()を使用します このテーブルをクエリするときに機能します。

    上記の表の行をカウントする方法は次のとおりです。

    SELECT COUNT(*)
    FROM Pets;

    結果:

    8

    これは、テーブルに8行あることを示しています。アスタリスクのワイルドカード(*を使用したため、 )すべての行とすべての列を指定します。

    特定の列を数える

    カウントする列を指定することもできます。 COUNT() 関数はNULL以外のみをカウントします 結果として、NULLを含む列を指定した場合 値、それらの値はカウントされません。

    これが私の意味を示す例です。

    SELECT COUNT(DOB)
    FROM Pets;

    結果:

    6

    この場合、Pets テーブルには2つのNULLが含まれています DOBの値 列(2匹のペットは生年月日を提供していません)なので、COUNT(DOB) COUNT(*)を使用した場合、8ではなく6を返します 。

    理由COUNT(*) 前の例では、すべての行が返されました。これは、これらの2つの行がしたためです。 他の列にデータがあります。

    フィルタリングされた結果

    COUNT() 関数は、クエリによって返された行をカウントします。したがって、結果をフィルタリングすると、COUNT()の結果になります。 それを反映します。

    SELECT COUNT(*)
    FROM Pets
    WHERE PetName = 'Fluffy';

    結果:

    2

    この場合、Fluffyという名前のペットが2匹います。したがって、クエリによって2つの行が返され、COUNT()の結果が返されます。 2です 。

    個別の列を数える

    DISTINCTを追加するオプションがあります 個別の値のみが返されるように指定するキーワード(重複を除外するため):

    SELECT 
        COUNT(PetName) AS "All",
        COUNT(DISTINCT PetName) AS "Distinct"
    FROM Pets;

    結果:

    +-----+----------+
    | All | Distinct |
    +-----+----------+
    |   8 |        7 |
    +-----+----------+

    この場合、PetNameが8つありますが 値は、そのうちの7つだけが区別されます(2つは重複しています–ふわふわと呼ばれる2匹のペットがいます)。

    HAVING 条項

    COUNT()を含めることができます クエリの複数の部分で。 SELECTだけに限定されません リスト。

    COUNT()を使用する例を次に示します。 両方のHAVING 句とSELECT リスト:

    SELECT 
        PetTypeId, 
        COUNT(PetTypeId) AS Count
    FROM Pets
    GROUP BY PetTypeId
    HAVING COUNT(PetTypeId) > 2
    ORDER BY Count DESC;

    結果:

    +-------------+---------+
    | PetTypeId   | Count   |
    |-------------+---------|
    | 3           | 4       |
    | 2           | 3       |
    +-------------+---------+

    SQL COUNT()を参照してください この例の詳細な説明と、COUNT()の使用例については、初心者向けです。 ウィンドウ関数で。


    1. Oracleは更新動作を選択します

    2. PostgreSQLのJSONデータ型のサイズ制限

    3. MySQLスクリプトコマンドラインにパラメータを渡す

    4. Oracleデータベースの日時値から分を取得する2つの方法