Làm cách nào để sử dụng chức năng nhóm trong MySQL?

Mệnh đề GROUP BY của MySQL được sử dụng trong câu lệnh SELECT để thu thập dữ liệu trên nhiều bản ghi và nhóm các kết quả theo một hoặc nhiều cột

cú pháp

Cú pháp của mệnh đề GROUP BY trong MySQL là

SELECT expression1, expression2, .. expression_n, 
       aggregate_function [expression]
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, .. expression_n;

Tham số hoặc Đối số

biểu thức1, biểu thức2,. biểu thức_nCác biểu thức không được gói gọn trong hàm tổng hợp và phải được bao gồm trong mệnh đề GROUP BY. hàm_tổng hợpMột hàm chẳng hạn như các hàm SUM, COUNT, MIN, MAX hoặc AVG. tableCác bảng mà bạn muốn truy xuất các bản ghi từ. Phải có ít nhất một bảng được liệt kê trong mệnh đề TỪ. điều kiện WHERETùy chọn. Các điều kiện phải được đáp ứng để hồ sơ được chọn

Ví dụ - Sử dụng hàm SUM

Hãy xem ví dụ truy vấn MySQL GROUP BY sử dụng hàm SUM

Ví dụ MySQL GROUP BY này sử dụng hàm SUM để trả về tên của sản phẩm và tổng số lượng [đối với sản phẩm]

SELECT product, SUM[quantity] AS "Total quantity"
FROM order_details
GROUP BY product;

Vì bạn đã liệt kê một cột [trường sản phẩm] trong câu lệnh SELECT không được gói gọn trong hàm SUM, nên bạn phải sử dụng Mệnh đề GROUP BY. Do đó, trường sản phẩm phải được liệt kê trong mệnh đề GROUP BY

Ví dụ - Sử dụng hàm COUNT

Hãy xem cách chúng ta có thể sử dụng mệnh đề GROUP BY với hàm COUNT trong MySQL

Ví dụ GROUP BY này sử dụng hàm MAX để trả về tên của từng bộ phận và mức lương tối đa trong bộ phận

Trong bài viết này, tôi sẽ thảo luận về Nhóm theo mệnh đề trong MySQL với các ví dụ. Vui lòng đọc bài viết trước của chúng tôi, nơi chúng tôi đã thảo luận về Mệnh đề WHERE trong MySQL

Nhóm theo khoản trong MySQL

Như tên cho thấy mệnh đề GROUP BY trong MySQL nhóm dữ liệu lại với nhau. Nó tổng hợp nhiều hàng thành một. Mệnh đề FROM và WHERE tạo tập kết quả dạng bảng trung gian và mệnh đề GROUP BY nhóm dữ liệu một cách có hệ thống. Mệnh đề GROUP BY có thể nhóm tập hợp kết quả theo một hoặc nhiều cột. Điều đó có nghĩa là Nhóm theo Khoản chia loại bản ghi hoặc dữ liệu tương tự thành một nhóm rồi trả về. Nếu chúng ta sử dụng mệnh đề nhóm theo trong truy vấn thì chúng ta nên sử dụng hàm nhóm/tổng ​​hợp chẳng hạn như các hàm đếm[], tổng[], max[], min[], avg[]

Khi chúng ta thực hiện mệnh đề group by thì đầu tiên dữ liệu của bảng sẽ được chia thành các nhóm riêng biệt theo cột và sau đó hàm tổng hợp sẽ thực hiện trên từng nhóm dữ liệu để lấy kết quả. Điều đó có nghĩa là mệnh đề Nhóm theo đầu tiên được sử dụng để phân chia các loại dữ liệu tương tự thành một nhóm và sau đó một hàm tổng hợp được áp dụng cho từng nhóm để có được kết quả cần thiết

Cú pháp của nhóm theo mệnh đề trong MySQL

Sau đây là cú pháp cơ bản để sử dụng Nhóm theo Mệnh đề trong Cơ sở dữ liệu MySQL

Tham số hoặc Đối số được sử dụng trong Nhóm theo Điều khoản trong MySQL
  1. biểu thức1, biểu thức2, biểu thức_n. Các biểu thức không được gói gọn trong hàm tổng hợp phải được đưa vào mệnh đề GROUP BY
  2. chức năng tổng hợp. Hàm tổng hợp có thể là hàm SUM, COUNT, MIN, MAX hoặc AVG mà chúng ta nên sử dụng khi đang sử dụng Nhóm theo Mệnh đề trong MySQL
  3. Những cái bàn. Các bảng không có gì khác ngoài tên của bảng hoặc các bảng mà chúng tôi muốn truy xuất dữ liệu.  
  4. điều kiện NƠI. nó là tùy chọn. Nếu bạn muốn truy xuất dữ liệu dựa trên một số điều kiện thì bạn cần chỉ định các điều kiện đó bằng Mệnh đề Where

Ghi chú. Mệnh đề GROUP BY trong MySQL nên được đặt sau mệnh đề FROM và WHERE. Một lần nữa, phải có ít nhất một cột hoặc một biểu thức sau từ khóa GROUP BY mà bạn muốn sử dụng làm tiêu chí để nhóm các bản ghi hoặc hàng

Ví dụ để hiểu Nhóm theo khoản trong MySQL

Chúng tôi sẽ sử dụng bảng nhân viên sau đây để hiểu Nhóm theo mệnh đề trong MySQL với các ví dụ

Vui lòng sử dụng Tập lệnh SQL bên dưới để tạo bảng công ty và nhân viên cơ sở dữ liệu với dữ liệu cần thiết

CREATE DATABASE company;
USE company;

CREATE TABLE employee [
  Id INT PRIMARY KEY,
  Name VARCHAR[45] NOT NULL,
  Department VARCHAR[45] NOT NULL,
  Salary FLOAT NOT NULL,
  Gender VARCHAR[45] NOT NULL,
  Age INT NOT NULL,
  City VARCHAR[45] NOT NULL
];

INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1001, 'John Doe', 'IT', 35000, 'Male', 25, 'London'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1002, 'Mary Smith', 'HR', 45000, 'Female', 27, 'Mumbai'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1003, 'James Brown', 'Finance', 50000, 'Male', 28, 'Delhi'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1004, 'Mike Walker', 'Finance', 50000, 'Male', 28, 'London'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1005, 'Linda Jones', 'HR', 75000, 'Female', 26, 'Mumbai'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1006, 'Anurag Mohanty', 'IT', 35000, 'Male', 25, 'London'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1007, 'Priyanla Dewangan', 'HR', 45000, 'Female', 27, 'Mumbai'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1008, 'Sambit Mohanty', 'IT', 50000, 'Male', 28, 'London'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1009, 'Pranaya Kumar', 'IT', 50000, 'Male', 28, 'London'];
INSERT INTO employee [Id, `Name`, Department, Salary, Gender, Age, City] VALUES [1010, 'Hina Sharma', 'HR', 75000, 'Female', 26, 'Mumbai'];

Khi bạn thực hiện các câu lệnh SQL trên, nó sẽ tạo cơ sở dữ liệu công ty và bên trong nó sẽ tạo bảng nhân viên như trong hình bên dưới

Mệnh đề GROUP BY của MySQL với hàm COUNT

Bây giờ chúng ta hãy xem một số ví dụ về cách sử dụng Nhóm theo Mệnh đề với hàm tổng hợp COUNT. Hàm tổng hợp COUNT trong MySQL sẽ trả về số lượng tổng số bản ghi

Ví dụ. Đếm tổng số nhân viên trong bảng nhân viên

CHỌN COUNT[*] NHƯ Tổng số nhân viên TỪ nhân viên;
Đầu ra. 10

Vì bảng nhân viên chứa tổng cộng 10 bản ghi nên hàm đếm trả về 10. Như bạn có thể thấy, ở đây chúng tôi không sử dụng bất kỳ nhóm nào theo chức năng

Ví dụ. Đếm tổng số nhân viên từng bộ phận của bảng nhân viên

Vì vậy, ở đây trước tiên chúng ta cần nhóm các nhân viên theo bộ phận, sau đó chúng ta cần thực hiện chức năng đếm trên từng nhóm. Truy vấn SQL sau đây thực hiện chính xác như vậy

SELECT Department, COUNT[*] AS TotalEmployee
FROM Employee 
GROUP BY Department;

Khi bạn thực hiện truy vấn trên, bạn sẽ nhận được kết quả bên dưới hiển thị tên bộ phận cùng với số lượng nhân viên của bộ phận đó

Mệnh đề MySQL GROUP BY với hàm SUM

Bây giờ chúng ta hãy xem một số ví dụ về việc sử dụng Nhóm theo Mệnh đề với hàm tổng hợp SUM. Hàm tổng hợp SUM trong MySQL sẽ tính tổng giá trị trên cột mà nó được vận hành

Ví dụ. Tìm tổng tiền lương trả cho tất cả nhân viên

CHỌN SUM[Salary] làm TotalSalary TỪ Nhân viên;
Đầu ra. 510000

Ví dụ. Đếm tổng lương cho từng bộ phận trong bảng nhân viên

Ở đây, trước tiên chúng ta cần nhóm các nhân viên theo bộ phận và sau đó chúng ta cần thực hiện hàm SUM trên từng nhóm. Và để hàm SUM chúng ta cần chuyển cột Lương. Truy vấn SQL sau đây thực hiện chính xác như vậy

SELECT Department, SUM[Salary] as TotalSalary
FROM Employee
GROUP BY Department;

Khi chúng tôi thực hiện truy vấn trên, bạn sẽ nhận được kết quả bên dưới hiển thị tên bộ phận cùng với tổng lương được cấp cho bộ phận đó

Mệnh đề GROUP BY của MySQL với hàm MAX và MIN

Bây giờ chúng ta hãy xem một số ví dụ về việc sử dụng Nhóm theo Mệnh đề với hàm tổng hợp MAX và MIN. Hàm tổng hợp MAX trong MySQL sẽ trả về giá trị tối đa trong khi hàm tổng hợp MIN sẽ trả về giá trị Min

Ví dụ. Tìm mức lương cao nhất trong mỗi bộ phận của tổ chức

Ở đây, trước tiên chúng ta cần nhóm các nhân viên theo bộ phận và sau đó chúng ta cần thực thi hàm MAX trên mỗi nhóm. Và đến hàm MAX, chúng ta cần chuyển cột Lương như trong Truy vấn SQL bên dưới

SELECT Department, MAX[SALARY] as MaxSalary
FROM Employee
GROUP BY Department;

Khi bạn thực hiện truy vấn SQL ở trên, nó sẽ cung cấp cho bạn kết quả bên dưới hiển thị tên bộ phận cùng với mức lương cao nhất của bộ phận đó

Ví dụ. Tìm mức lương thấp nhất trong mỗi bộ phận

Ở đây, trước tiên chúng ta cần nhóm các nhân viên theo bộ phận và sau đó chúng ta cần thực thi hàm MIN Aggregate trên mỗi nhóm. Và đến hàm MIN, chúng ta cần chuyển cột Lương như trong Truy vấn SQL bên dưới

SELECT Department, MIN[SALARY] as MinSalary
FROM Employee
GROUP BY Department;

Khi bạn thực thi câu lệnh SQL trên, nó sẽ cung cấp cho bạn kết quả sau đây hiển thị tên bộ phận cùng với mức lương thấp nhất của bộ phận đó

NHÓM theo mệnh đề có nhiều cột trong MySQL

Cũng có thể sử dụng Nhóm theo cột trên nhiều cột trong MySQL. Trong trường hợp đó, trước tiên, dữ liệu trong bảng được chia dựa trên cột đầu tiên của mệnh đề nhóm và sau đó mỗi nhóm được chia nhỏ dựa trên cột thứ hai của mệnh đề nhóm và sau đó hàm nhóm được áp dụng cho từng nhóm bên trong để

Ví dụ. Tìm số nhân viên làm việc trong mỗi Giới tính mỗi bộ phận

Vì vậy, yêu cầu của chúng tôi là gì, trước tiên chúng tôi cần nhóm nhân viên theo bộ phận và sau đó chúng tôi cần nhóm nhân viên theo mức lương có trong mỗi bộ phận

SELECT Department, Salary, COUNT[*] AS EmployeeCount
FROM Employee
GROUP BY Department, Salary
ORDER BY Department;

Khi chúng tôi thực hiện truy vấn trên, nó sẽ cho chúng tôi kết quả bên dưới

Ví dụ. Tìm tổng lương và tổng số nhân viên theo Thành phố và theo giới tính

Ở đây, trước tiên chúng ta cần nhóm theo Thành phố và sau đó theo Giới tính. Sau đó, chúng ta cần áp dụng hàm SUM Aggregate trên cột Lương để tính tổng cộng và hàm Count Aggregate trên cột Id để tìm tổng số nhân viên

________số 8

Khi chúng tôi thực hiện truy vấn trên, nó sẽ cho chúng tôi kết quả bên dưới

Mệnh đề GROUP BY của MySQL có chức năng AVG

Bây giờ chúng ta hãy xem một ví dụ về việc sử dụng Nhóm theo Điều khoản với chức năng tổng hợp AVG. Hàm tổng hợp ACG trong MySQL sẽ trả về giá trị trung bình của cột mà nó được vận hành

Ví dụ. Tìm mức lương trung bình của từng bộ phận

Ở đây, trước tiên chúng ta cần nhóm các nhân viên theo bộ phận và sau đó chúng ta cần thực thi chức năng AVG Aggregate trên từng nhóm. Và đến chức năng Tổng hợp AVG, chúng ta cần chuyển cột Lương như trong Truy vấn SQL bên dưới

SELECT Department, AVG[Salary] as AverageSalary
FROM Employee
GROUP BY Department;

Khi chúng tôi thực hiện truy vấn trên, bạn sẽ nhận được đầu ra bên dưới hiển thị tên bộ phận cùng với mức lương trung bình của bộ phận đó

Ghi chú. Khi hàm tổng hợp được áp dụng cho một nhóm, hàm này chỉ trả về một giá trị nhưng mỗi nhóm có thể trả về một giá trị. Chỉ sử dụng mệnh đề Nhóm theo trên một cột chứa các giá trị trùng lặp, không bao giờ áp dụng nó trên các cột duy nhất

Trong bài viết tiếp theo, tôi sẽ thảo luận về Have Mệnh đề trong MySQL với các ví dụ. Ở đây, trong bài viết này, tôi cố gắng giải thích Nhóm theo mệnh đề trong MySQL bằng các ví dụ. Tôi hy vọng bạn thích bài viết này. Tôi muốn có phản hồi của bạn. Vui lòng gửi phản hồi, câu hỏi hoặc nhận xét của bạn về bài viết này

Chức năng nhóm trong MySQL là gì?

Hàm GROUPING được dùng để phân biệt giữa NULL đại diện cho tập hợp tất cả các giá trị trong một hàng siêu tổng hợp [do thao tác ROLLUP tạo ra] với NULL trong một hàng thông thường . .

Làm cách nào để thêm nhóm trong MySQL?

Quy trình .
Từ ngăn điều hướng, đi đến Bảo vệ > Cơ sở dữ liệu. .
Nhấp vào phiên bản mà bạn muốn thêm nhóm cơ sở dữ liệu vào. .
Trong phần Nhóm cơ sở dữ liệu, nhấp vào Thêm nhóm cơ sở dữ liệu. .
Trong hộp Tên nhóm cơ sở dữ liệu, hãy nhập tên cho nhóm cơ sở dữ liệu
Từ danh sách Gói, chọn một gói máy chủ

Công dụng của hàm GROUP BY là gì?

Câu lệnh GROUP BY trong SQL được sử dụng để sắp xếp dữ liệu giống hệt nhau thành các nhóm với sự trợ giúp của một số hàm . tôi. e nếu một cột cụ thể có cùng giá trị trong các hàng khác nhau thì nó sẽ sắp xếp các hàng này thành một nhóm.

Hàm nhóm trong SQL với ví dụ là gì?

Các hàm nhóm phổ biến của máy chủ SQL

Chủ Đề