Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да приложите клауза с група чрез в Select Query - SQL Server / TSQL урок, част 131

Сценарий:

Вие работите като разработчик на SQL Server, от вас се иска да напишете заявка, която трябва да върне Total SaleAmount от таблицата dbo.Customer от CountryShortName. Също така трябва да филтрирате записите, където Total SaleAmount по CountryShortName е по-голям от 10.


Решение:

От горния сценарий сте забелязали няколко неща. Първо трябва да сумираме SaleAmount. Второ, трябва да групираме по SaleAmount по CountryShortName. Последното нещо, което трябва да филтрираме тези записи, след като изчислим сумата и връща само когато общата SaleAmount е по-голяма от 10. Тук не можем да използваме клаузата Where, като къде ще филтрираме записите преди Group by. SQL Server ни предоставя клауза Having, която можем да използваме за филтриране на записите след група по.
Нека създадем таблица dbo.Customer със записи по-долу и след това напишем нашата заявка, като използваме Group by и Having клауза.

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)
 
 
 Нека напишем нашата заявка, като използваме Group by и след това използваме Having за филтриране на записа, където Sum(SaleAmount) е по-голям от 10.
SELECT countryshortname, 
       Sum(saleamount) SaleAmountByCountry 
FROM   dbo.customer 
GROUP  BY countryshortname 
HAVING Sum(saleamount) > 10 
 Как да филтрирате обобщени данни с помощта на клауза Having в SQL 


Видео демонстрация:Как да използвате клауза в SQL Изявление за избор

 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкнете всички стойности на таблица в друга таблица в SQL

  2. CONVERT() от дата/час към примери за низове в SQL Server

  3. Типове курсори на SQL Server - Динамичен курсор само за препращане | Урок за SQL Server / Урок за TSQL

  4. Какво трябва да знаете за С NOCHECK, когато активирате ограничение CHECK в SQL Server

  5. Как да генерирате DDL скриптове (Създаване) от SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 17