GROUP BY so với ORDER BY – w3seo phân biệt và so sánh

Rate this post

Bài viết này lý giải tổng quan khá đầy đủ về mệnh đề GROUP BY và ORDER BY. Chúng hầu hết được sử dụng để tổ chức triển khai tài liệu thu được bởi những truy vấn SQL. Sự độc lạ giữa những mệnh đề này là một trong những điểm thông dụng nhất khiến bạn gặp khó khăn vất vả khi học SQL. Sự độc lạ chính giữa chúng là mệnh đề GROUP BY hoàn toàn có thể vận dụng khi tất cả chúng ta muốn sử dụng những hàm tổng hợp cho nhiều hơn một tập hợp hàng. Mệnh đề ORDER BY hoàn toàn có thể vận dụng khi tất cả chúng ta muốn lấy tài liệu thu được bởi một truy vấn theo thứ tự sắp xếp. Trước khi thực thi so sánh, thứ nhất tất cả chúng ta sẽ biết những mệnh đề SQL này .
Các bài viết tương quan :

Mệnh đề order by

Mệnh đề ORDER BY được sử dụng trong các truy vấn SQL để sắp xếp dữ liệu được trả về bởi một truy vấn theo thứ tự tăng dần hoặc giảm dần. Nếu chúng ta bỏ qua thứ tự sắp xếp, nó sẽ sắp xếp kết quả tóm tắt theo thứ tự tăng dần theo mặc định. Mệnh đề ORDER BY, giống như mệnh đề GROUP BY, có thể được sử dụng cùng với câu lệnh SELECT. ASC biểu thị thứ tự tăng dần, trong khi DESC biểu thị thứ tự giảm dần.

Sau đây là cú pháp để sử dụng mệnh đề ORDER BY trong câu lệnh SQL :

Hãy để chúng tôi hiểu cách hoạt động giải trí của mệnh đề ORDER BY với sự trợ giúp của ví dụ sau. Giả sử tất cả chúng ta có một nhà tăng trưởng bảng chứa tài liệu sau :

Chúng ta hoàn toàn có thể thấy rằng những hiệu quả này không được hiển thị một cách có tổ chức triển khai. Giả sử tất cả chúng ta muốn tổ chức triển khai những hiệu quả theo thứ tự tăng dần hoặc giảm dần dựa trên cột trạng thái. Trong trường hợp đó, tất cả chúng ta sẽ cần lệnh ORDER BY để có được tác dụng mong ước. Chúng ta hoàn toàn có thể làm điều này bằng cách thực thi lệnh như sau :

Đây là tác dụng mà tất cả chúng ta sẽ nhận được hiệu quả mong ước :

Mệnh đề GROUP BY

Mệnh đề GROUP BY được sử dụng trong những truy vấn SQL để tổ chức triển khai tài liệu có những giá trị thuộc tính giống nhau. Thông thường, chúng tôi sử dụng nó với câu lệnh SELECT. Luôn nhớ rằng tất cả chúng ta phải đặt mệnh đề GROUP BY sau mệnh đề WHERE. Ngoài ra, nó có nhịp độ trước mệnh đề ORDER BY .
Chúng ta thường hoàn toàn có thể sử dụng mệnh đề này phối hợp với những hàm tổng hợp như SUM, AVG, MIN, MAX và COUNT để tạo báo cáo giải trình tóm tắt từ cơ sở tài liệu. Điều quan trọng cần nhớ là thuộc tính trong mệnh đề này phải Open trong mệnh đề SELECT, không phải dưới một hàm tổng hợp. Nếu chúng tôi làm như vậy, truy vấn sẽ không đúng chuẩn. Do đó, mệnh đề GROUP BY luôn được sử dụng cùng với mệnh đề SELECT. 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 người tiêu dùng được nhóm .
Sau đây là cú pháp để sử dụng mệnh đề GROUP BY trong câu lệnh SQL :

Hãy để chúng tôi hiểu cách hoạt động giải trí của mệnh đề GROUP BY với sự trợ giúp của một ví dụ. Ở đây chúng tôi sẽ chứng tỏ nó với cùng một bảng .
Giả sử tất cả chúng ta muốn biết mức lương trung bình của nhà tăng trưởng ở một trạng thái đơn cử và sắp xếp hiệu quả theo thứ tự giảm dần dựa trên cột trạng thái. Trong trường hợp đó, tất cả chúng ta sẽ cần cả lệnh GROUP BY và ORDER BY để có được hiệu quả mong ước. Chúng ta hoàn toàn có thể làm điều này bằng cách triển khai lệnh như sau :

Truy vấn này ban đầu hình thành một kết quả trung gian đã nhóm trạng thái. Tiếp theo, hàm AVG được thực hiện trên từng nhóm trạng thái, sau đó sắp xếp kết quả theo thứ tự giảm dần và cuối cùng, chúng ta sẽ nhận được kết quả mong muốn như hình dưới đây:

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

Sau đây là những điểm độc lạ chính giữa mệnh đề Group By và Order By :

  • Mệnh đề Group By được sử dụng để nhóm dữ liệu dựa trên cùng một giá trị trong một cột cụ thể. Mặt khác, mệnh đề ORDER BY sắp xếp kết quả và hiển thị nó theo thứ tự tăng dần hoặc giảm dần.
  • Bắt buộc phải sử dụng chức năng tổng hợp để sử dụng Nhóm Theo. Mặt khác, không bắt buộc phải sử dụng hàm tổng hợp để sử dụng Order By.
  • Thuộc tính không thể nằm trong câu lệnh GROUP BY trong hàm tổng hợp, trong khi thuộc tính có thể nằm trong câu lệnh ORDER BY trong hàm tổng hợp.
  • Mệnh đề Group By kiểm soát việc trình bày các bộ giá trị có nghĩa là việc nhóm được thực hiện dựa trên sự giống nhau giữa các giá trị thuộc tính của hàng. Ngược lại, mệnh đề ORDER BY kiểm soát việc trình bày các cột có nghĩa là việc sắp xếp hoặc sắp xếp được thực hiện dựa trên các giá trị thuộc tính của cột theo thứ tự tăng dần hoặc giảm dần.
  • GROUP BY luôn được đặt sau mệnh đề WHERE nhưng trước mệnh đề ORDER BY. Mặt khác, ORDER BY luôn được sử dụng sau câu lệnh GROUP BY.

Biểu đồ so sánh của Group By và Order By 

Biểu đồ so sánh sau lý giải sự độc lạ chính của chúng một cách nhanh gọn :

GROUP BY

  1. Nó được sử dụng để nhóm các hàng có cùng giá trị. 
  2. Nó có thể được cho phép trong câu lệnh CREATE VIEW. 
  3. Nó kiểm soát việc trình bày các hàng.
  4. Thuộc tính không được dưới hàm tổng hợp trong câu lệnh GROUP BY. 
  5. Nó luôn được sử dụng trước mệnh đề ORDER BY trong câu lệnh SELECT. 
  6. Bắt buộc phải sử dụng các hàm tổng hợp trong GROUP BY. 
  7. Ở đây, việc phân nhóm được thực hiện dựa trên sự giống nhau giữa các giá trị thuộc tính của hàng. 

ORDER BY

  1. Nó sắp xếp tập kết quả theo thứ tự tăng dần hoặc giảm dần.
  2. Nó không được phép trong câu lệnh CREATE VIEW
  3. Nó kiểm soát việc trình bày các cột.
  4. Thuộc tính có thể nằm dưới hàm tổng hợp trong câu lệnh ORDER BY.
  5. Nó luôn được sử dụng sau mệnh đề GROUP BY trong câu lệnh SELECT.
  6. Không bắt buộc phải sử dụng các hàm tổng hợp trong ORDER BY.
  7. Ở đây, tập hợp kết quả được sắp xếp dựa trên các giá trị thuộc tính của cột, theo thứ tự tăng dần hoặc giảm dần.

Sự kết luận

Các mệnh đề GROUP BY và ORDER BY được so sánh trong bài viết này. Cả hai mệnh đề đều là những tính năng cơ sở tài liệu SQL cực kỳ có ích. Khi tất cả chúng ta muốn tạo một nhóm những hàng, tất cả chúng ta sử dụng mệnh đề GROUP BY. Nếu tất cả chúng ta muốn tổ chức triển khai tài liệu theo thứ tự tăng dần hoặc giảm dần dựa trên một cột đơn cử, tất cả chúng ta sử dụng mệnh đề ORDER BY. Họ không có bất kể mối quan hệ nào vì cả hai đều được sử dụng cho hai mục tiêu khác nhau. Tuy nhiên, tất cả chúng ta hoàn toàn có thể tích hợp chúng để ship hàng một số ít mục tiêu đặc biệt quan trọng hoặc hoàn toàn có thể sử dụng riêng không liên quan gì đến nhau tùy trường hợp. Chúng ta chỉ hoàn toàn có thể sử dụng những mệnh đề này với câu lệnh SELECT .