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

Cách sử dụng mệnh đề GROUP BY trong SQL

Trong bài viết SQL này, chúng ta sẽ tìm hiểu về mệnh đề GROUP BY và cách sử dụng nó trong SQL. Chúng ta cũng sẽ thảo luận về việc sử dụng mệnh đề GROUP BY với mệnh đề WHERE.

Mệnh đề GROUP BY là gì?

Mệnh đề GROUP BY là một mệnh đề SQL được sử dụng trong câu lệnh SELECT để quản lý các bản ghi giống nhau của một cột trong nhóm bằng cách sử dụng các hàm SQL.

Cú pháp của mệnh đề GROUP BY:

SELECT columnname1, columnname2, columnname3 FROM tablename GROUP BY columnname;

Chúng ta có thể sử dụng nhiều cột từ bảng trong mệnh đề GROUP BY.

Có một số bước, chúng ta phải tìm hiểu cách sử dụng mệnh đề GROUP BY trong truy vấn SQL:

1. Tạo cơ sở dữ liệu mới hoặc sử dụng cơ sở dữ liệu hiện có bằng cách chọn cơ sở dữ liệu bằng từ khóa USE theo sau là tên cơ sở dữ liệu.

2. Tạo một bảng mới bên trong cơ sở dữ liệu đã chọn hoặc bạn có thể sử dụng một bảng đã được tạo.

3. Nếu bảng mới được tạo, hãy chèn các bản ghi vào cơ sở dữ liệu mới được tạo bằng cách sử dụng truy vấn INSERT và xem dữ liệu được chèn bằng truy vấn SELECT không có mệnh đề GROUP BY.

4. Bây giờ, chúng ta đã sẵn sàng sử dụng mệnh đề GROUP BY trong các truy vấn SQL.

Bước 1:Tạo cơ sở dữ liệu mới hoặc sử dụng cơ sở dữ liệu đã được tạo.

Tôi đã tạo một cơ sở dữ liệu. Tôi sẽ sử dụng tên cơ sở dữ liệu đã tạo hiện có của mình, Công ty.

USE Company;

Công ty là tên cơ sở dữ liệu.

Những người chưa tạo cơ sở dữ liệu hãy làm theo truy vấn dưới đây để tạo cơ sở dữ liệu:

CREATE DATABASE database_name;

Sau khi tạo cơ sở dữ liệu, hãy chọn cơ sở dữ liệu bằng cách sử dụng từ khóa USE, theo sau là tên cơ sở dữ liệu.

Bước 2:Tạo bảng mới hoặc sử dụng bảng đã có:

Tôi đã tạo một bảng. Tôi sẽ sử dụng bảng hiện có có tên Nhân viên.

Để tạo bảng mới, hãy làm theo cú pháp TẠO BẢNG bên dưới:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Bước 3:Chèn các bản ghi vào bảng mới tạo bằng truy vấn INSERT và xem các bản ghi bằng truy vấn CHỌN.

Sử dụng cú pháp sau để chèn các bản ghi mới trong bảng:

INSERT INTO table_name VALUES(value1, value2, value3);

Sử dụng cú pháp sau để xem các bản ghi từ bảng:

SELECT * FROM table_name;

Truy vấn sau sẽ hiển thị hồ sơ của Nhân viên:

SELECT * FROM Employees;

Kết quả của truy vấn SELECT ở trên là:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
3002 ANUJA DÂY 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1

Bước 4:Chúng tôi đã sẵn sàng sử dụng mệnh đề GROUP BY trong các truy vấn

Bây giờ chúng ta sẽ đi sâu vào mệnh đề GROUP BY với sự trợ giúp của các ví dụ

Ví dụ 1: Viết truy vấn để hiển thị nhóm hồ sơ nhân viên theo thành phố.

SELECT * FROM EMPLOYEES GROUP BY CITY;

Truy vấn trên hiển thị hồ sơ của nhân viên trong đó nhân viên từ cùng một thành phố sẽ được coi là một nhóm. Ví dụ:nếu có 10 bản ghi nhân viên trong bảng trong đó 3 người đến từ thành phố Pune, 3 người đến từ thành phố Mumbai, 2 bản ghi từ Hyderabad và Bangalore, thì truy vấn trên sẽ nhóm nhân viên thành phố Pune thành phố Mumbai thành một bản ghi, v.v. .

Kết quả của truy vấn trên:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1

Như chúng ta có thể thấy rằng hồ sơ của nhân viên được nhóm theo thành phố và hồ sơ được hiển thị theo thứ tự tăng dần theo mặc định.

Ví dụ 2: Viết truy vấn để hiển thị nhóm hồ sơ của nhân viên theo mức lương theo thứ tự giảm dần.

SELECT * FROM EMPLOYEES GROUP BY SALARY DESC; 

Truy vấn trên hiển thị hồ sơ của nhân viên trong đó những nhân viên có cùng mức lương sẽ được coi là một nhóm và hồ sơ sẽ hiển thị theo thứ tự giảm dần.

Kết quả của truy vấn trên:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5

Như chúng ta có thể thấy, hồ sơ của nhân viên được nhóm theo mức lương và hồ sơ được hiển thị theo thứ tự giảm dần, như chúng tôi đề cập đến phần mô tả ở cuối.

Ví dụ 3: Viết truy vấn để hiển thị nhóm hồ sơ của nhân viên theo mức lương và thành phố.

SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;

Truy vấn trên hiển thị hồ sơ của nhân viên trong đó những nhân viên có cùng mức lương và thành phố sẽ được coi là một nhóm.

Ví dụ, giả sử bảng có 10 bản ghi nhân viên. Từ 10 nhân viên lương của 2 nhân viên và thành phố khớp với hai nhân viên khác và sáu nhân viên còn lại lương và thành phố là không trùng khớp thì 6 nhân viên sẽ được coi là 6 nhóm riêng biệt và 2 nhân viên khớp với 2 nhân viên khác sẽ được coi là một nhóm . Tóm lại, 8 nhóm sẽ được thành lập.

Kết quả của truy vấn trên:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3

Như chúng ta có thể thấy, hồ sơ của nhân viên được nhóm theo mức lương và thành phố, và hồ sơ được hiển thị theo thứ tự tăng dần theo mặc định.

Ví dụ 4: Viết truy vấn để hiển thị hồ sơ của nhân viên theo thành phố và bộ phận.

SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

Truy vấn trên hiển thị hồ sơ của nhân viên trong đó nhân viên ở cùng một thành phố và bộ phận sẽ được coi là một nhóm.

Kết quả của truy vấn trên:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
2002 BHAVESH JAIN 65500 PUNE FMW 2
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1

Như chúng ta có thể thấy, hồ sơ của nhân viên được nhóm theo thành phố và bộ phận, và hồ sơ được hiển thị theo thứ tự tăng dần theo mặc định.

Ví dụ 5: Viết truy vấn để đếm danh sách nhân viên trong từng bộ phận từ bảng nhân viên.

SELECT DEPARTMENT, COUNT(DEPARTMENT) FROM EMPLOYEES GROUP BY DEPARTMENT;

Truy vấn trên hiển thị số lượng nhân viên trong từng nhóm phòng ban theo bộ phận. Giống như sáu nhân viên làm việc trong bộ phận nhân sự, năm nhân viên làm việc trong một bộ phận khác.

Kết quả của truy vấn trên:

KHOA COUNT (BỘ PHẬN)
C # 4
FMW 3
JAVA 4
ORACLE 4
KIỂM TRA 3

Như chúng ta có thể thấy, bốn nhân viên làm việc trong Bộ phận C #, ba nhân viên làm việc trong Bộ phận FMW, v.v.

Ví dụ 6: Viết truy vấn để đếm danh sách nhân viên từ mỗi thành phố từ bảng nhân viên.

SELECT CITY, COUNT(CITY) FROM EMPLOYEES GROUP BY CITY;

Truy vấn trên hiển thị số lượng nhân viên trong từng nhóm thành phố theo thành phố. Giống như ba nhân viên làm việc từ thành phố Pune, bốn nhân viên làm việc từ thành phố khác, v.v.

Kết quả của truy vấn trên:

CITY COUNT (THÀNH PHỐ)
BANGALORE 2
ĐIỀU CHỈNH 2
DELHI 2
HYDERABAD 2
JAIPUR 2
MUMBAI 3
NOIDA 2
PUNE 3

Như chúng ta có thể thấy, hai nhân viên làm việc từ thành phố Bangalore, ba nhân viên làm việc từ thành phố Mumbai, v.v.

Ví dụ 7: Viết một truy vấn để tổng hợp nhóm lương của nhân viên theo thành phố.

SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY;

Ở trên được sử dụng để tổng hợp tiền lương của nhân viên được nhóm theo tên thành phố. Ví dụ, đối với nhân viên từ cùng một thành phố, lương của họ sẽ là tổng và được coi là một nhóm. Chúng tôi đã sử dụng hàm tổng hợp theo sau là cột lương để thêm lương.

Kết quả của truy vấn trên:

CITY TIỀN LƯƠNG
BANGALORE 115000
ĐIỀU CHỈNH 104000
DELHI 115500
HYDERABAD 135000
JAIPUR 101000
MUMBAI 169000
NOIDA 114500
PUNE 186500

Như chúng ta có thể thấy, tổng mức lương của thành phố Bangalore là 115000, tổng mức lương của thành phố Chandigarh là 104000, là phần cộng thêm vào mức lương của nhân viên khác nhau, nhưng từ thành phố, mỗi thành phố đều sử dụng cùng một cách tiếp cận.

Ví dụ 8: Viết truy vấn để tìm mức lương tối thiểu từ mỗi bộ phận.

SELECT DEPARTMENT, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

Truy vấn trên được sử dụng để tìm mức lương tối thiểu của nhân viên từ mỗi bộ phận. Mức lương của một trong những nhân viên của bộ phận Java là 54500, mức lương thấp nhất trong toàn bộ bộ phận java. 48500 tương tự là mức lương thấp nhất được trả cho nhân viên trong bộ phận C #.

Kết quả của truy vấn trên:

KHOA MIN (LƯƠNG)
C # 48500
FMW 50500
JAVA 54500
ORACLE 55500
KIỂM TRA 54500

Như chúng ta thấy, 50500 là mức lương thấp nhất trả cho một trong những nhân viên trong bộ phận FMW, 55500 là mức lương thấp nhất trả cho một trong những nhân viên trong bộ phận ORACLE.

Ví dụ 9: Viết một truy vấn để tìm mức lương tối thiểu từ mỗi thành phố.

SELECT CITY, MAX(SALARY) FROM EMPLOYEES GROUP BY CITY;

Truy vấn trên được sử dụng để tìm mức lương tối đa từ mỗi thành phố. Mức lương của một trong những nhân viên ở thành phố Pune là 65500, cao nhất trong toàn thành phố Pune, cùng 60500 là mức lương cao nhất được trả cho nhân viên ở thành phố Mumbai.

Kết quả của truy vấn trên:

CITY MAX (LƯƠNG)
BANGALORE 60500
ĐIỀU CHỈNH 55500
DELHI 60000
HYDERABAD 70000
JAIPUR 50500
MUMBAI 60500
NOIDA 60000
PUNE 65500

Như chúng ta thấy, 50500 là mức lương cao nhất trả cho một trong những nhân viên ở thành phố Jaipur, 55500 là mức lương cao nhất trả cho một trong những nhân viên ở thành phố Chandigarh.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vui vẻ với nén (columnstore) trên một bàn rất lớn - phần 3

  2. Quần đảo T-SQL Challenge

  3. Tìm kiếm mẫu giản đồ

  4. Trận đấu gần nhất, Phần 3

  5. ScaleGrid Nâng cao Vòng tăng trưởng Vốn chủ sở hữu từ các Đối tác Cổ phần Nổi bật để Tăng tốc Mở rộng và Đầu tư Hơn nữa vào Lộ trình Sản phẩm