sql >> Databasteknik >  >> RDS >> Sqlserver

Förstå Group by Clause i SQL Server - SQL Server / TSQL Tutorial Del 130

Scenario:

Du arbetar som SQL Server-utvecklare. Du har en dbo.Customer-tabell som har CountryShortName och SaleAmount. Du ombeds att skriva en fråga som ska returnera Sum of SaleAmount , antal poster efter CountryShortName.


Lösning:

Gruppera efter klausul används ofta med aggregerade funktioner som Sum, Avg,Count,Max,Min för att gruppera resultatet efter kolumn/er.
Låt oss skapa vår exempeltabell med lite data och skriva vår fråga med Group by to svara på vår fråga.
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)
 
 Låt oss skriva vår fråga genom att använda Summa, Antal och Gruppera efter klausul
SELECT Sum(saleamount) AS TotalSaleByCountry, 
       Count(*) AS RecordCountByCountry, 
       countryshortname 
FROM   dbo.customer 
GROUP  BY countryshortname
 Hur man använder Group by Clause i SQL Server
 
Du kan också använda flera kolumner i grupp för sats. tänk på om vår tabell skulle ha tillstånd och du skulle vilja gruppera efter CountryShortName och State, Du skulle enkelt inkludera State i frågan som visas nedan.

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
 

  1. Hur ändrar jag datumformatet i Postgres?

  2. Hur genererar jag kapslade json-objekt med inbyggda mysql-json-funktioner?

  3. Hur man ansluter till en MySQL-datakälla i Visual Studio

  4. Hur infogar/uppdaterar man större data i Oracle-tabellerna?