T-sql-group-by-clause

提供:Dev Guides
移動先:案内検索

T-SQL-GROUP BY句

SQL Serverの GROUP BY 句は、SELECTステートメントと連携して使用され、同一のデータをグループに配置します。

GROUP BY句は、SELECTステートメントのWHERE句に続き、ORDER BY句に先行します。

構文

GROUP BY句の基本的な構文は次のとおりです。 GROUP BY句は、WHERE句の条件に従う必要があり、ORDER BY句を使用する場合はORDER BY句の前になければなりません。

SELECT column1, column2
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2
ORDER BY column1, column2

CUSTOMERS表が次のレコードを持っていると考えてください-

ID  NAME       AGE       ADDRESS          SALARY
1   Ramesh     32        Ahmedabad        2000.00
2   Khilan     25        Delhi            1500.00
3   kaushik    23        Kota             2000.00
4   Chaitali   25        Mumbai           6500.00
5   Hardik     27        Bhopal           8500.00
6   Komal      22        MP               4500.00
7   Muffy      24        Indore           10000.00

各顧客の給与の合計額を知りたい場合、GROUP BYクエリは次のようになります。

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS
   GROUP BY NAME;

上記のコマンドは、次の出力を生成します。

NAME        sum of salary
Chaitali    6500.00
Hardik      8500.00
kaushik     2000.00
Khilan      1500.00
Komal       4500.00
Muffy       10000.00
Ramesh      2000.00

ここで、重複した名前を持つ次のレコードを持つ次のCUSTOMERSテーブルについて考えてみましょう。

ID  NAME       AGE       ADDRESS           SALARY
1   Ramesh     32        Ahmedabad         2000.00
2   Khilan     25        Delhi             1500.00
3   kaushik    23        Kota              2000.00
4   Chaitali   25        Mumbai            6500.00
5   Hardik     27        Bhopal            8500.00
6   Komal      22        MP                4500.00
7   Muffy      24        Indore            10000.00

各顧客の給与の合計額を知りたい場合、GROUP BYクエリは次のようになります。

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS
   GROUP BY NAME

上記のコマンドは、次の出力を生成します。

NAME        sum of salary
Hardik      8500.00
kaushik     8500.00
Komal       4500.00
Muffy       10000.00
Ramesh      3500.00