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

集計関数COUNTを使用してレコードをフィルタリングする方法

    問題:

    グループ内の特定の数のエントリを持つ行のグループを検索する必要があります。

    例:

    データベースには、product 次の列にデータがあります:idname およびcategory

    id 名前 カテゴリ
    1 ソファ 家具
    2 手袋 衣類
    3 Tシャツ 衣類
    4 椅子 家具
    5 デスク 家具
    6 見る エレクトロニクス
    7 アームチェア 家具
    8 スカート 衣類
    9 ラジオ受信機 エレクトロニクス

    3つ以上のエントリがある製品のカテゴリを見つけましょう。

    解決策:

    SELECT category, COUNT(id)
    FROM product
    GROUP BY category
    HAVING COUNT(id)>2;
    

    結果は次のとおりです。

    カテゴリ カウント
    家具 4
    衣類 3

    ディスカッション:

    グループ内の指定された行数に従ってレコードをフィルタリングするには、HAVING句を使用します。 COUNTなどの条件集計関数を使用して行をフィルタリングします。まず、SELECTで、1つまたは複数の列の名前を使用して行をグループ化し(これはこの例ではカテゴリです)、次に各グループのレコード数を集計する集計関数COUNTを配置します。行数をカウントするには、一意の値を格納するid列を使用します(この例では、COUNT(id)を使用します )。次に、GROUP BY句を使用して、列に従ってレコードをグループ化します(GROUP BY 上記のカテゴリ)。 GROUP BYを使用してCOUNTなどの集計関数でレコードをフィルタリングした後、HAVING句を使用します。常にGROUPBY句の後に使用されます。 HAVINGでは、条件を使用して、値を集計関数によって返される値と比較します。この例では、COUNT(id)が2より大きい値を返すかどうかを比較します。 trueの場合、カテゴリは製品数とともに返されます。


    1. MySQLで中央値を計算する簡単な方法

    2. C++プログラムをMariaDBに接続する方法

    3. 最新のPostgreSQLトレンド:最も時間のかかるタスクと追跡する重要なメトリック

    4. SQL ServerのFLOOR()の例