Mệnh đề GROUP BY trong SQL – https://final-blade.com

Mệnh đề GROUP BY trong SQL trả về tài liệu tổng hợp bằng cách nhóm một hoặc nhiều cột và triển khai những tính năng tổng hợp trên những cột còn lại. Và cột tổng hợp hoặc nhóm hoàn toàn có thể là một hoặc nhiều cột. Để lọc những nhóm hoặc những hàng được nhóm lại, tất cả chúng ta phải sử dụng mệnh đề có .
Ví dụ : Nếu bạn muốn khám phá Tổng số Bán hàng theo khu vực hoặc vương quốc, hãy sử dụng SQL Server Group By Khoản để phân loại bảng Bán hàng theo khu vực hoặc vương quốc. Sau đó, tất cả chúng ta hoàn toàn có thể sử dụng hàm tổng hợp SUM với để tính tổng .

Cú pháp mệnh đề GROUP BY trong SQL

Cú pháp mệnh đề nhóm theo SQL trong câu lệnh SELECT là

SELECT [Column1], [Column2]...[ColumnN],
       Aggregate Function (Expression | Column_Name) 
FROM [Source]
WHERE [Conditions] -- Optional
GROUP BY [Column1], [Column2]...[ColumnN]
ORDER BY Cols

Từ cú pháp mệnh đề theo nhóm SQL ở trên, nó cho phép chúng ta CHỌN số cột từ các bảng và nó có thể là một hoặc nhiều. Chúng tôi có thể sử dụng bất kỳ hàm tổng hợp nào như MIN, AVG, MAX và COUNT. Nguồn có thể là một hoặc nhiều bảng và sử dụng Kết hợp để nối nhiều bảng.

Điều kiện : Cung cấp bộ lọc hoặc điều kiện kèm theo. Nếu điều kiện kèm theo là TRUE, thì chỉ Câu lệnh SQL Group By SELECT trả về những bản ghi. Tất cả những Col đã chọn không thuộc Hàm tổng hợp nên đặt sau mệnh đề này .
Nếu bạn muốn hiển thị thông tin tổng hợp cho người dùng cuối, hãy sử dụng lao lý này. Bài viết này chỉ ra cách sử dụng mệnh đề SQL Server Group By để phân loại tài liệu và tổng hợp trong khi trích xuất nó bằng cách sử dụng câu lệnh SELECT. Chúng tôi sử dụng tài liệu dưới đây để lý giải điều này và ví dụ sau lý giải cách pháp luật này hoạt động giải trí trong cột nhóm .

Nhóm SQL theo số cột đơn

Trong ví dụ này, chúng tôi sử dụng một cột trong Mệnh đề nhóm này. Truy vấn sau sẽ tính tổng số id nhân viên cấp dưới trong một hạng mục giáo dục .

SELECT Education, 
	COUNT([EmpID]) AS [Total IDs]
FROM [Customer]
GROUP BY Education

Nhóm SQL theo số cột đơn

Nhóm theo nhiều cột

Sử dụng nhiều hơn một hoặc nhiều cột, ví dụ điển hình như Giáo dục đào tạo và nghề nghiệp trong nhóm SQL thanh toán giao dịch này theo truy vấn mệnh đề .

SELECT Education, 
	[Occupation],
	COUNT([EmpID]) AS [Total IDs]
FROM [Customer]
GROUP BY Education, Occupation

Nhóm SQL theo nhiều cột
Nếu bạn quan sát ảnh chụp màn hình hiển thị SQL Server ở trên, Mặc dù chúng tôi đã tích hợp Nghề nghiệp, những giá trị cột đang lặp lại. Đó là vì Ở đây chúng tôi đã sử dụng hai cột ( Nghề nghiệp và Giáo dục đào tạo ) trong câu lệnh này. Những người đã học bằng cử nhân đang thao tác trong Quản lý, và rất ít người đang thao tác trong Chuyên môn .

Ví dụ về nhóm theo hàm tính tổng trong SQL

Ở đây, chúng tôi sử dụng hàm Sum trong một cột duy nhất. Ngôn ngữ truy vấn có cấu trúc giao dịch tổng hợp sau đây sẽ tính tổng thu nhập của từng bộ phận.

SELECT [Occupation],
	SUM(YearlyIncome) AS [Total Income]
FROM [Customer]
GROUP BY Occupation

Nhóm SQL theo tổng
Sử dụng SQL Group by Sum và ví dụ Multiple Columns .

SELECT [Occupation],
	Education,
	SUM(YearlyIncome) AS [Total Income]
FROM [Customer]
GROUP BY Occupation, Education

Nhóm theo tổng và nhiều cột
Chúng ta cũng hoàn toàn có thể sử dụng Mệnh đề Where cùng với Mệnh đề này .

SELECT [Occupation]
      ,[Education]
      ,SUM([YearlyIncome]) AS [Total Income]
  FROM [Customer]
  WHERE [Occupation] <> 'Skilled Manual'
  GROUP BY [Occupation], [Education]


Bạn cũng hoàn toàn có thể sử dụng mệnh đề SQL GROUP BY Order By và mệnh đề where cùng với mệnh đề này. Bằng cách sử dụng mệnh đề thứ tự, bạn hoàn toàn có thể sắp xếp những bản ghi theo thứ tự giảm dần hoặc tăng dần. Câu lệnh sau đây sắp xếp người mua theo thu nhập theo thứ tự giảm dần .

SELECT [Occupation]
      ,[Education]
      ,SUM([YearlyIncome]) AS [Total Income]
	  ,SUM(Sales) AS [Total Sales]
  FROM [Customer]
  WHERE [Occupation] <> 'Skilled Manual'
  GROUP BY [Occupation], [Education]
  ORDER BY SUM([YearlyIncome]) DESC

Nhóm theo thứ tự theo mệnh đề ở đâu

Nhóm theo các hàm tổng hợp

Trong ví dụ này, Chúng ta sẽ sử dụng hàm tổng hợp SUM, AVG, MIN và MAX trong một Câu lệnh SELECT duy nhất cùng với Mệnh đề Thứ tự .

SELECT [Occupation]
      ,SUM([YearlyIncome]) AS [Total Income]
      ,AVG([YearlyIncome]) AS [Average Income]
      ,MIN([YearlyIncome]) AS [Minimum Salery]
      ,MAX([YearlyIncome]) AS [Maximum Salery]
  FROM [Customer]
  GROUP BY [Occupation]
  ORDER BY  [Occupation]

LƯU Ý: Nếu bạn quên Tên Cột ALIAS thì [No Column Name] sẽ được hiển thị dưới dạng văn bản tiêu đề.

Nhóm theo mệnh đề hàng đầu

Trong câu lệnh sql sau, nó nhóm những hàng bằng cách tích hợp Nghề nghiệp và giáo dục và Mệnh đề số 1 để chọn 6 bản ghi tiên phong .

SELECT TOP 6 [Occupation],
	Education,
	SUM(YearlyIncome) AS [Total Income],
	SUM(Sales) AS [Total Sales]
FROM [Customer]
GROUPBY Occupation, Education
ORDER BY SUM(YearlyIncome) DESC

Nhóm SQL theo mệnh đề hàng đầu
Nó giống như truy vấn trên nhưng chúng tôi sử dụng hai dòng dưới đây theo thứ tự và mệnh đề có so với nó. Tuyên bố này sẽ tích hợp Khách hàng theo Nghề nghiệp và Học vấn. Tiếp theo, Điều khoản có sẽ trả về tác dụng có tổng Thu nhập hàng năm lớn hơn 60000 .

HAVING SUM([YearlyIncome]) > 60000
ORDER BY SUM(YearlyIncome) DESC

Nhóm theo ví dụ có tổng

Ví dụ phức tạp về nhóm theo mệnh đề trong SQL

Kết hợp toàn bộ những năng lực như ở đâu, có, sắp xếp theo, tổng mà bạn hoàn toàn có thể sử dụng cùng với mệnh đề này .

SELECT [Occupation],
	Education,
	SUM(YearlyIncome) AS [Total Income],
	SUM(Sales) AS [Total Sales]
FROM [Customer]
WHERE [Education] <> 'Partial High School'
GROUP BY Occupation, Education
HAVING SUM([YearlyIncome]) > 60000
ORDER BY Occupation, Education

Nhóm theo thời gian thực truy vấn