Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Hiểu Nhóm theo Mệnh đề trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 130

Tình huống:

Bạn đang làm việc với tư cách là Nhà phát triển máy chủ SQL. Bạn có một bảng dbo.Customer có CountryShortName và SaleAmount. Bạn được yêu cầu viết một truy vấn sẽ trả về Sum of SaleAmount, số lượng bản ghi theo CountryShortName.


Giải pháp:

Mệnh đề Group by thường được sử dụng với các hàm tổng hợp như Sum, Avg, Count, Max, Min để nhóm kết quả được thiết lập theo cột / s.
Hãy tạo bảng mẫu của chúng tôi với một số dữ liệu và viết truy vấn của chúng tôi với Group by to trả lời câu hỏi của chúng tôi.
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)
 
 Hãy viết truy vấn của chúng ta bằng cách sử dụng Sum, Count và Group theo mệnh đề 
SELECT Sum(saleamount) AS TotalSaleByCountry, 
       Count(*) AS RecordCountByCountry, 
       countryshortname 
FROM   dbo.customer 
GROUP  BY countryshortname
  Cách sử dụng Nhóm theo mệnh đề trong SQL Server 
 
Bạn cũng có thể sử dụng nhiều cột trong nhóm theo mệnh đề. Hãy nghĩ xem nếu bảng của chúng ta sẽ có các trạng thái và bạn muốn nhóm theo CountryShortName và State, Bạn chỉ cần đưa State vào truy vấn như hình dưới đây.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo khóa chính trong SQL Server (Ví dụ T-SQL)

  2. XÓA hàng loạt trên SQL Server 2008 (Có bất kỳ điều gì giống như Sao chép hàng loạt (bcp) để xóa dữ liệu không?)

  3. Kiểm tra xem một hàng có tồn tại hay không, nếu không, hãy chèn

  4. Làm thế nào để tìm các hàng liên tiếp dựa trên giá trị của một cột?

  5. Sự cố bảng tạm thời RODBC khi kết nối với MS SQL Server