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

SQL GROUP BYステートメントの使用とは何ですか?

    大量のデータが存在する場合、要件に従ってデータを操作する可能性がよくあります。 GROUP BY句は、SQLのそのようなステートメントの1つであり、いくつかの列または条件に基づいてデータをグループ化するために使用されます。 SQL GROUP BYステートメントに関するこの記事では、GROUPBYステートメントを次の順序で使用するいくつかの方法について説明します。

    1. GROUPBYステートメント
    2. 構文
    3. 例:
      • 単一の列でGROUPBYを使用する
      • 複数の列のGROUPBY
      • ORDERBYでGROUPBYを使用する
      • HAVING句を使用したGROUPBY
      • JOINSでGROUPBYを使用する

    GROUP BY句の使用方法の例に進む前に、SQLでのGROUPBYとその構文について理解しましょう。

    SQLGROUPBYステートメント

    このステートメントは、同じ値を持つレコードをグループ化するために使用されます。 GROUP BYステートメントは、結果を1つ以上の列でグループ化するために、集計関数でよく使用されます。これとは別に、GROUP BY句はHAVING句およびJOINSとともに使用され、条件に基づいて結果セットをグループ化します。

    SQLGROUPBY構文

    SELECT Column1, Column2,..., ColumnN
    FROM TableName
    WHERE Condition
    GROUP BY ColumnName(s)
    ORDER BY ColumnName(s);
    

    ここでは、列名の前に集計関数を追加したり、ステートメントの最後に条件を指定するHAVING句を追加したりできます。次に、SQL GROUP BYに関するこの記事で、このステートメントの実装方法を理解しましょう。

    例:

    理解を深めるために、例を次のセクションに分けました。

      • 単一の列でGROUPBYを使用する
      • 複数の列のGROUPBY
      • ORDERBYでGROUPBYを使用する
      • HAVING句を使用したGROUPBY
      • JOINSでGROUPBYを使用する

    例を説明するために、次の表を検討します。

    EmpID EmpName EmpEmail PhoneNumber 給与 都市

    1

    Nidhi

    [email protected]

    9955669999

    50000

    ムンバイ

    2

    Anay

    [email protected]

    9875679861

    55000

    Pune

    3

    Rahul

    [email protected]

    9876543212

    35000

    デリー

    4

    ソニア

    [email protected]

    9876543234

    35000

    デリー

    5

    Akash

    [email protected]

    9866865686

    25000

    ムンバイ

    それぞれを見てみましょう。

    単一の列でSQLGROUPBYを使用する

    例:

    各都市の従業員数を取得するためのクエリを記述します。

    SELECT COUNT(EmpID), City
    FROM Employees
    GROUP BY City;
    

    出力:

    次の出力が表示されます:

    Count(EmpID) 都市

    2

    デリー

    2

    ムンバイ

    1

    プネ

    複数の列でSQLGROUPBYを使用する

    例:

    各都市で給与が異なる従業員の数を取得するクエリを記述します。

    SELECT City, Salary, Count(*)
    FROM Employees
    GROUP BY City, Salary;
    

    出力:

    テーブルには次のデータが含まれます:

    都市 給与 Count(*)

    デリー

    35000

    2

    ムンバイ

    25000

    1

    ムンバイ

    50000

    1

    プネ

    55000

    1

    ORDERBYでSQLGROUPBYを使用する

    SQL GROUPBYステートメントをORDERBY句とともに使用すると、値は昇順または降順で並べ替えられます。

    例:

    各都市の従業員数を降順で並べ替えて取得するクエリを記述します。

    SELECT COUNT(EmpID), City
    FROM Employees
    GROUP BY City
    ORDER BY COUNT(EmpID) DESC;
    

    出力:

    テーブルには次のデータが含まれます:

    Count(EmpID) 都市

    2

    デリー

    2

    ムンバイ

    1

    プネ

    HAVING句でSQLGROUPBYを使用する

    SQL GROUP BYステートメントは、グループの条件を示すために「HAVING」句とともに使用されます。また、WHERE句で集計関数を使用することはできないため、GROUP BYで集計関数を使用するには、「HAVING」句を使用する必要があります。

    例:

    給与が15000を超える、各都市の従業員数を取得するクエリを記述します

    SELECT COUNT(EmpID), City
    FROM Employees
    GROUP BY City
    HAVING SALARY > 15000;
    

    出力:

    すべてがEmployeeテーブルのレコードであり、給与が15000を超えているため、次のテーブルが出力として表示されます。

    Count(EmpID) 都市

    2

    デリー

    2

    ムンバイ

    1

    プネ

    JOINSでGROUPBYを使用する

    JOINSは、2つ以上のテーブルの関連する列に基づいて、それらのテーブルの行を結合するために使用されるSQLステートメントです。 SQL GROUP BYステートメントを使用して、1つまたは複数の列に基づいて結果セットをグループ化できます。以下の表を考慮して、SQLGROUPBY句を使用してJOINステートメントを実行してください。

    プロジェクトテーブル:

    ProjectID EmpID ClientID ProjectDate
    2345 1 4 2019年1月26日
    9876 2 5 2019年2月28日
    3456 3 6 2019年12月3日

    クライアントテーブル:

    ClientID ClientName

    4

    Sanjana

    5

    ローハン

    6

    アルン

    各クライアントから要求されたプロジェクトの数を一覧表示するクエリを作成します。

    SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects
    LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID
    GROUP BY ClientName;
    

    出力:

    テーブルには次のデータが含まれます:

    ClientName RequestedProjects

    アルン

    1

    ローハン

    1

    Sanjana

    1

    これで、SQLGROUPBYの記事は終わりです。 これをチェックしてください MySQLDBA認定トレーニング ネットワークを備えた信頼できるオンライン学習会社であるEdurekaによる 25万人以上の満足した学習者が世界中に広がっています。 このコースでは、データを管理し、MySQLデータベースを管理するためのコアコンセプトと高度なツールおよびテクニックについてトレーニングします。これには、MySQL Workbench、MySQLサーバー、データモデリング、MySQLコネクタ、データベースデザイン、MySQLコマンドライン、MySQL関数などの概念に関する実践的な学習が含まれます。トレーニングの終わりに、独自のMySQLデータベースを作成および管理できるようになります。データを管理します。

    質問がありますか?この「SQLGROUPBY」の記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。


    1. 複数のチェックボックス値をテーブルに挿入するにはどうすればよいですか?

    2. フィールドをidの値に更新するMySQLトリガー

    3. PostgreSQLパフォーマンスチューニングのヒント

    4. 不正な整数(2147483647)がMySQLに挿入されていますか?