sql >> Database teknologi >  >> RDS >> Sqlserver

Forstå gruppe efter klausul i SQL Server - SQL Server / TSQL selvstudium del 130

Scenarie:

Du arbejder som SQL Server-udvikler. Du har en dbo.Customer-tabel, som har CountryShortName og SaleAmount. Du bliver bedt om at skrive en forespørgsel, der skal returnere Sum of SaleAmount , antal poster efter CountryShortName.


Løsning:

Gruppér efter klausul bruges ofte med aggregerede funktioner såsom Sum, Avg, Count, Max, Min for at gruppere resultatet sat efter kolonne/r.
Lad os oprette vores eksempeltabel med nogle data og skrive vores forespørgsel med Group by to svar på vores spørgsmål.
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)
 
 Lad os skrive vores forespørgsel ved at bruge Sum, Count og Group by Clause
SELECT Sum(saleamount) AS TotalSaleByCountry, 
       Count(*) AS RecordCountByCountry, 
       countryshortname 
FROM   dbo.customer 
GROUP  BY countryshortname
 Sådan bruger du Group by Clause i SQL Server
 
Du kan også bruge flere kolonner i gruppe for klausul. tænk over, om vores tabel ville have tilstande, og du gerne vil gruppere efter CountryShortName og State. Du vil ganske enkelt inkludere State i forespørgslen som vist nedenfor.

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. Hvorfor kan jeg ikke bruge kolonnealiaser i det næste SELECT-udtryk?

  2. Sådan får du kortdagens navn fra en dato i MariaDB

  3. oracle hurtigere personsøgningsforespørgsel

  4. Oracle VÆLG TOP 10 poster