GROUP BY - Mệnh đề - SQL & Database

Skip to content
  • Microsoft SQL Server
  • 0
GROUP BY – Mệnh đề

Nội dung

  • 1. Mô tả
  • 2. Cú pháp
  • 3. Ví dụ

1. Mô tả

  • Mệnh đề GROUP BY dùng để tạo các phân nhóm dữ liệu trên 1 cột hoặc nhiều cột.

2. Cú pháp

SELECT Tên_cột, Hàm_nhóm_dữ_liệu FROM Tên_bảng WHERE Điều_kiện GROUP BY Biểu_thức_nhóm_dữ_liệu HAVING Điều_kiện_lọc_nhóm_dữ_liệu ORDER BY Tên_cột

3. Ví dụ

  • Sử dụng GROUP BY trên 1 cột:
SELECT Department_id, SUM(Salary) "Tổng lương" FROM EMPLOYEES GROUP BY Department_id ORDER BY Department_id
  • Sử dụng GROUP BY trên nhiều cột:
SELECT Department_id, Job_id, SUM(Salary) FROM EMPLOYEES GROUP BY Department_id, Job_id ORDER BY Department_id
  • Một số lưu ý khi sử dụng các hàm nhóm dữ liệu (AVG, COUNT, MAX, MIN, SUM): bất kỳ một cột hay biểu thức trong danh sách của SELECT không phải là hàm nhóm dữ liệu thì phải có mệnh đề GROUP BY.
--Sai: SELECT DEPARTMENT_ID, AVG(SALARY) FROM EMPLOYEES --Đúng: SELECT DEPARTMENT_ID, AVG(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT_ID
  • Không thể sử dụng mệnh đề WHERE để giới hạn bớt các nhóm; Sử dụng mệnh đề HAVING để lọc bớt các nhóm; Không được phép sử dụng các hàm nhóm dữ liệu trong mệnh đề WHERE.
--Sai: SELECT DEPARTMENT_ID, SUM(SALARY) FROM EMPLOYEES WHERE SUM(SALARY) > 10000 GROUP BY DEPARTMENT_ID ORDER BY DEPARTMENT_ID --Đúng: SELECT DEPARTMENT_ID, SUM(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT_ID HAVING SUM(SALARY) > 10000 ORDER BY DEPARTMENT_ID
  • Dùng mệnh đề WHERE để lọc và Group By để nhóm dữ liệu:
SELECT DEPARTMENT_ID, SUM(SALARY) FROM EMPLOYEES WHERE DEPARTMENT_ID IN(10, 20, 30) GROUP BY DEPARTMENT_ID HAVING SUM(SALARY) > 10000 ORDER BY DEPARTMENT_ID

Tags: GROUP BY

  • Next story CONVERT – Hàm đổi kiểu dữ liệu
  • Previous story JOIN – Mệnh đề

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bình luận *

Tên *

Email *

Trang web

Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.

Học SQL

Từ khóa » Câu Lệnh Group By Trong Oracle