sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man applicerar att ha klausul med Group by i Select Query - SQL Server / TSQL Tutorial Del 131

Scenario:

Du arbetar som SQL Server-utvecklare, du ombeds att skriva en fråga som ska returnera Total SaleAmount från dbo.Customer-tabellen efter CountryShortName. Du ombeds också att filtrera de poster där Total SaleAmount efter CountryShortName är större än 10.


Lösning:

Från ovanstående scenario har du märkt ett par saker. Först måste vi summera SaleAmount. För det andra måste vi gruppera efter SaleAmount efter CountryShortName. Det sista vi behöver för att filtrera dessa poster efter att ha beräknat summan och returnerar endast där det totala SaleAmount är större än 10. Vi kan inte använda Where-satsen här eftersom var kommer att filtrera posterna före Group by. SQL Server ger oss Having-sats som vi kan använda för att filtrera posterna efter grupp efter.
Låt oss skapa dbo.Customer Table med nedanstående poster och sedan skriva vår fråga genom att använda Group by och Have-sats.

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 Group by och sedan använda Att filtrera posten där Sum(SaleAmount) är större än 10.
SELECT countryshortname, 
       Sum(saleamount) SaleAmountByCountry 
FROM   dbo.customer 
GROUP  BY countryshortname 
HAVING Sum(saleamount) > 10 
 Så här filtrerar du aggregerad data med hjälp av Having-satsen i SQL 


Videodemo :Hur man använder att ha klausul i SQL Select Statement

 



  1. Hur använder man en Oracle Ref Cursor från C# ODP.NET som en ReturnValue-parameter, utan att använda en lagrad funktion eller procedur?

  2. Varför uppstod ett nätverksrelaterat eller instansspecifikt fel när en anslutning till SQL Server upprättades?

  3. MySQL-datakällan visas inte i Visual Studio

  4. Vad är det egentligen för en BLOB i ett DBMS-sammanhang