SQLのGROUP BYステートメントは、いくつかの関数の助けを借りて、同一のデータをグループに配置するために使用されます。 つまり、特定の列が異なる行に同じ値を持つ場合、これらの行をグループに配置します。

重要なポイント:

  • GROUP BY句はSELECT文で使用されます。クエリでは、WHERE句の後にGROUP BY句が配置されます。クエリでは、GROUP BY句が使用されている場合はORDER BY句の前に配置されます。,

構文:

サンプルテーブル:

従業員

学生

例:

  • 単一の列によるグループ:単一の列によるグループは、その特定の列のみの同じ値を持つすべての行を一つのグループに配置することを意味します。, 以下に示すようにクエリを考えてみましょう。
    SELECT NAME, SUM(SALARY) FROM Employee GROUP BY NAME;

    上記のクエリは以下の出力を生成します。

    上記の出力でわかるように、重複した名前を持つ行は同じ名前でグループ化され、対応する給与は重複した行の給与の合計です。 ここでは、SQLのSUM()関数を使用して合計を計算します。

  • 複数の列によるグループ化:複数の列によるグループは、たとえば、group BY column1、column2です。, これは、列column1とcolumn2の両方の同じ値を持つすべての行を一つのグループに配置することを意味します。 以下のクエリを考えてみましょう。
    SELECT SUBJECT, YEAR, Count(*)FROM StudentGROUP BY SUBJECT, YEAR;

    出力:

    上記の出力でわかるように、同じ科目と年の両方を持つ学生は同じグループに配置されます。 者のみを対象と同じもののない年が属する異なるグループに対して、異なる. だからここでは、二つの列または複数の列に従ってテーブルをグループ化しました。,

HAVING句

WHERE句は列に条件を配置するために使用されることはわかっていますが、グループに条件を配置する場合はどうなりますか?

これはHAVING句が使用される場所です。 HAVING句を使用して、どのグループが最終結果セットの一部になるかを決定する条件を配置できます。 また、SUM()、COUNT()などの集計関数を使用することはできません。 WHERE句を使用します。 したがって、条件でこれらの関数のいずれかを使用する場合は、HAVING句を使用する必要があります。,

構文:

例:

SELECT NAME, SUM(SALARY) FROM Employee GROUP BY NAMEHAVING SUM(SALARY)>3000; 

出力:

上記の出力でわかるように、給与の合計が3000より大きい唯一のグループであるため、結果セットには三つのグループのうち一つのグループのみが表示されます。 したがって、条件は列ではなくグループに配置する必要があるため、ここでHAVING句を使用してこの条件を配置しました。

この記事はHarsh Agarwalによって寄稿されています。 GeeksforGeeksが好きで、貢献したい場合は、contributeを使用して記事を書くこともできます。オタクフォージークス,orgまたはあなたの記事を郵送する[email protected]のメインページに表示されるあなたの記事を参照してくださいし、他のオタクを助けます.