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

GROUP BY so với ORDER BY

Mệnh đề GROUP BY và mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp dữ liệu thu được bởi các truy vấn SQL. Sự khác biệt quan trọng giữa mệnh đề GROUP BY và mệnh đề ORDER BY là mệnh đề GROUP BY được áp dụng khi chúng ta muốn sử dụng một hàm tổng hợp trong truy vấn SQL trên nhiều hơn một tập hợp các hàng. Ngược lại, mệnh đề ORDER BY được áp dụng khi chúng ta muốn nhận dữ liệu thu được bởi truy vấn theo thứ tự đã được sắp xếp. Trước khi chuyển sang biểu đồ so sánh, trước tiên chúng ta sẽ hiểu các mệnh đề SQL này.

Mệnh đề GROUP BY

Câu lệnh GROUP BY trong SQL sử dụng các truy vấn để sắp xếp dữ liệu trong các giá trị thuộc tính. Thông thường, chúng ta sử dụng mệnh đề GROUP BY với câu lệnh SELECT. Chúng ta luôn phải đặt mệnh đề GROUP BY sau mệnh đề WHERE. Ngoài ra, nó cũng có nhịp độ trước điều khoản ORDER BY.

Chúng ta thường có thể sử dụng mệnh đề GROUP BY với các hàm tổng hợp như SUM, AVG, MIN, MAX và COUNT để tạo ra kết quả từ cơ sở dữ liệu. Truy vấn cho mệnh đề GROUP BY là truy vấn nhóm và nó trả về một hàng duy nhất cho mỗi đối tượng được nhóm.

Dưới đây là Cú pháp để sử dụng Mệnh đề GROUP BY trong truy vấn SQL

SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;

Hãy hiểu mệnh đề GROUP BY với sự trợ giúp của một số ví dụ. Hãy xem xét các bảng sau cùng với các bản ghi đã cho.

Bảng:Nhân viên

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID WORKING_HOURS GIỚI TÍNH
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NIKHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAI KIỂM TRA 4 9 F
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3 9 F
3002 ANUJA Ở ĐÂU 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4 10 M

Ví dụ 1: Giả sử chúng ta muốn biết tổng tiền lương của nhân viên ở một thành phố cụ thể cho dữ liệu trên. Để làm điều này, chúng tôi sẽ thực hiện truy vấn dưới đây như sau:

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

Truy vấn này ban đầu tạo ra một kết quả là đã nhóm thành phố. Tiếp theo, SUM chức năng được thực hiện trên từng nhóm thành phố, và cuối cùng, chúng tôi sẽ nhận được kết quả mong muốn như hình dưới đây:

Ví dụ 2: Giả sử chúng ta muốn biết mức lương tối đa của nhân viên trong một bộ phận cụ thể cho dữ liệu trên. Để làm điều này, chúng tôi sẽ thực hiện truy vấn dưới đây như sau:

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

Truy vấn này ban đầu tạo thành một kết quả đã nhóm các bộ phận. Tiếp theo, MAX chức năng được thực hiện trên từng nhóm của bộ phận, và cuối cùng, chúng tôi sẽ nhận được kết quả mong muốn như hình dưới đây:

ĐẶT HÀNG THEO Mệnh đề

Mệnh đề GROUP BY và mệnh đề ORDER BY có thể được sử dụng với câu lệnh SELECT. Trong các truy vấn SQL, chúng tôi đã sử dụng mệnh đề ORDER BY để sắp xếp các bản ghi được trả về bởi truy vấn theo thứ tự tăng dần hoặc giảm dần. Nếu chúng tôi không đề cập đến thứ tự sắp xếp, toàn bộ kết quả sẽ được sắp xếp theo mặc định theo thứ tự tăng dần.

Dưới đây là Cú pháp để sử dụng Mệnh đề ORDER BY trong truy vấn SQL

SELECT * FROM TABLENAME ORDER BY [ASC | DESC];

Hãy để chúng tôi hiểu mệnh đề ORDER BY với sự trợ giúp của một vài ví dụ. Hãy xem xét các bảng sau cùng với các bản ghi đã cho.

Bảng:Nhân viên

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID WORKING_HOURS GIỚI TÍNH
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NIKHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FMW 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAI KIỂM TRA 4 9 F
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3 9 F
3002 ANUJA Ở ĐÂU 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4 10 M

Ví dụ 1: Giả sử chúng ta muốn sắp xếp kết quả theo thứ tự đã sắp xếp, tăng dần hoặc giảm dần, dựa trên cột tên. Trong trường hợp đó, chúng tôi muốn sử dụng mệnh đề ORDER BY để lấy kết quả. Để làm điều này, chúng tôi sẽ thực hiện truy vấn dưới đây như sau:

SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;

Sự khác biệt chính giữa GROUP BY và ORDER BY

Sau đây là những điểm phân biệt giữa mệnh đề GROUP BY và ORDER BY:

  • Câu lệnh GROUP BY trong SQL được sử dụng để nhóm các bản ghi dựa trên một giá trị tương tự trong một cột cụ thể. Mặt khác, mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp kết quả hiển thị theo thứ tự tăng dần hoặc giảm dần.
  • Trong khi thực hiện truy vấn bằng mệnh đề GROUP BY trong truy vấn SQL, bạn bắt buộc phải sử dụng hàm tổng hợp. Mặt khác, khi sử dụng mệnh đề ORDER BY trong SQ, bạn không bắt buộc phải sử dụng hàm tổng hợp.
  • Mệnh đề GROUP BY luôn được đặt trong truy vấn SQL sau mệnh đề WHERE nhưng trước mệnh đề ORDER BY. Mặt khác, mệnh đề ORDER BY luôn được đặt sau mệnh đề GROUP BY.

Biểu đồ so sánh

SR.NO GROUP BY ĐẶT HÀNG THEO
1 Mệnh đề GROUP BY được sử dụng để nhóm các hàng có giá trị tương tự nhau. Mệnh đề ORDER BY được sử dụng để sắp xếp kết quả theo thứ tự giảm dần hoặc tăng dần
2 Nó kiểm soát việc trình bày các hàng Nó kiểm soát việc trình bày các cột
3 Mệnh đề GROUP BY luôn được đặt trước mệnh đề ORDER BY. Mệnh đề ORDER BY luôn được đặt sau mệnh đề GROUP BY.
4 Bắt buộc phải sử dụng hàm tổng hợp Không bắt buộc phải sử dụng hàm tổng hợp
5 Thuộc tính không được nằm trong hàm tổng hợp trong câu lệnh GROUP BY. Thuộc tính có thể nằm dưới hàm tổng hợp trong câu lệnh ORDER BY.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình Cơ sở dữ liệu cho Khảo sát Trực tuyến. Phần 4

  2. Toán tử SQL là gì và chúng hoạt động như thế nào?

  3. Việc sử dụng câu lệnh SQL GROUP BY là gì?

  4. Kết nối SQuirreL SQL với Microsoft Excel

  5. Cách loại bỏ các hàng trùng lặp trong SQL