Skenario:
Anda bekerja sebagai Pengembang SQL Server. Anda memiliki tabel dbo.Customer yang memiliki CountryShortName dan SaleAmount. Anda diminta untuk menulis kueri yang seharusnya mengembalikan Sum of SaleAmount , jumlah catatan menurut CountryShortName.
Solusi:
Klausa Group by sering digunakan dengan fungsi agregat seperti Sum, Avg,Count,Max,Min untuk mengelompokkan hasil yang ditetapkan oleh kolom/s.Mari kita buat tabel sampel kita dengan beberapa data dan tulis query kita dengan Group by to jawab pertanyaan kami.
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)
Mari kita tulis query kita dengan menggunakan Sum, Count dan Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, Count(*) AS RecordCountByCountry, countryshortname FROM dbo.customer GROUP BY countryshortname
Cara menggunakan Group by Clause di SQL Server
Anda juga dapat menggunakan beberapa kolom dalam kelompok demi klausa. pikirkan apakah tabel kami akan memiliki status dan Anda ingin mengelompokkan berdasarkan CountryShortName dan State, Anda cukup memasukkan State dalam kueri seperti yang ditunjukkan di bawah ini.
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