シナリオ:
あなたはSQLServer開発者として働いています。 CountryShortNameとSaleAmountを持つdbo.Customerテーブルがあります。合計SaleAmount、CountryShortNameによるレコード数を返すクエリを作成するように求められます。
解決策:
Group by句は、Sum、Avg、Count、Max、Minなどの集計関数でよく使用され、結果セットを列ごとにグループ化します。いくつかのデータを使用してサンプルテーブルを作成し、Groupbyを使用してクエリを記述します。質問に答えてください。
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), SaleAmount Int) GO --Insert Rows in dbo.Customer Table insert into dbo.Customer Values ( 1,'Raza','M','PK',10), (2,'Rita','John','US',12), (3,'Sukhi','Singh',Null,25), (4,'James','Smith','CA',60), (5,'Robert','Ladson','US',54), (6,'Alice','John','US',87), (6,'John',Null,'US',Null)Sum、Count、Groupby句を使用してクエリを記述しましょう
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortnameSQLServerでGroupby句を使用する方法
groupby句で複数の列を使用することもできます。テーブルに状態があり、CountryShortNameとStateでグループ化する場合は、次のようにクエリにStateを含めるだけです。
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname,
[State] FROM dbo.customer GROUP BY countryshortname,[State]
Video Demo: What is Group by Clause in SQL Server