Các hàm nhóm dữ liệu group functions ?Các hàm nhóm dữ liệu là phép toán trên một tập các dòng để trả về một kết quả tương ứng mỗi nhóm NHANVIEN Tổng lương các nhân viên trong bảng NHA
Trang 1Gom nhóm dữ liệu
Trang 2Các hàm nhóm dữ liệu (group functions) ?
Các hàm nhóm dữ liệu là phép toán trên một tập
các dòng để trả về một kết quả tương ứng mỗi
nhóm NHANVIEN
Tổng lương các nhân viên trong bảng
NHANVIEN
Trang 3Các hàm nhóm dữ liệu
Trang 4SELECT [cot,] ham_nhom_du_lieu(cot),
Trang 5SELECT AVG(mucluong) as AVG_LLuong,
MAX(mucluong) as MAX_Luong, MIN(mucluong) as MIN_Luong,
SUM(mucluong) as SUM_Luong FROM qlns.nhanvien
WHERE macongviec LIKE ‘%TT%'
Sử dụng các hàm AVG,SUM & MAX,MIN
AVG và SUM : dùng cho dữ liệu kiểu số.
MIN and MAX : Có thể dùng cho phần lớn các kiểu dữ liệu
SELECT MIN(ngayvaolam), MAX(ngayvaolam)
FROM qlns.nhanvien
Trang 7SELECT COUNT(DISTINCT maphong)
FROM qlns.nhanvien;
Sử dụng từ khóa DISTINCT
khác nhau và khác NULL của bieu_thuc.
• Ví dụ : Cho biết có bao nhiêu phòng ban khác
nhau trong bảng NHANVIEN
Trang 8SELECT AVG(phucap)
FROM qlns.nhanvien
Giá trị NULL và trong các hàm nhóm dữ liệu
Các hàm nhóm dữ liệu sẽ tự động bỏ qua các giá
trị NULL trong cột khi thực hiện tính toán.
Trang 9Tạo các phân nhóm dữ liệu
NHANVIEN
Tổng lương trong bảng NHANVIEN của mỗi phòng
Trang 10SELECT cot, ham_nhom_du_lieu(cot)
Trang 11SELECT maphong, AVG(mucluong)
FROM qlns.nhanvien
GROUP BY maphong
Sử dụng mệnh đề GROUP BY
Tất cả các cột trong danh sách của SELECT nếu không
phải là hàm nhóm dữ liệu thì phải tồn tại trong mệnh
đề GROUP BY
Trang 12Sử dụng mệnh đề GROUP BY
Các cột trong GROUP BY không bắt buộc phải có trong
danh sách của SELECT
SELECT AVG(mucluong)
FROM qlns.nhanvien
GROUP BY maphong
Trang 13Tạo phân nhóm trên nhiều cột
NHANVIEN
“Tính tổng lương cho mỗi công việc và phân nhóm theo phòng ban
…
Trang 14SELECT maphong maph, macongviec, SUM(mucluong)
FROM qlns.nhanvien
GROUP BY maphong, macongviec
ORDER BY maphong, macongviec
Sử dụng GROUP BY trên nhiều cột
Trang 15Một số lưu ý khi sử dụng các hàm
nhóm dữ liệu
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
Trang 17Lọc bớt kết quả phân nhóm
Liệt kê những phòng ban có MAX lương lớn hon 8.500.000 đ NHANVIEN
…
Trang 18SELECT cotcolumn, ham_nho_du_lieu
2 Các hàm nhóm dữ liệu đã đưa vào.
3 Chỉ những nhóm thỏa điều kiện HAVING mới
nằm trong tập kết quả trả về.
Trang 20SELECT macongviec, SUM(mucluong) TIENLUONG
Trang 21Thực hành
• Viết truy vấn sử dụng các hàm phân nhóm
• Phân nhóm các dòng kết hợp hàm phân nhóm
• Kết hợp mệnh đề HAVING, mệnh đề WHERE