1. Trang chủ
  2. » Cao đẳng - Đại học

Bai 29 Ham Ket Hop va Gom Nhom

26 37 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Mệnh đề GROUP BY...được thêm vào SQL bởi vì các hàm tập hợp (như SUM) trả về một tập hợp của các giá trị trong cột mỗi khi chúng được gọi, và nếu không có GROUP BY ta không thể nào tí[r]

(1)

BÀI 29:

(2)

29.1 HÀM KẾT HỢP

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Cú pháp hàm COUNT:

SELECT COUNT(tên_cột) FROM tên_bảng:

Hàm COUNT(*):

Hàm COUNT(*) trả số lượng dòng chọn bảng

(3)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Câu lệnh sau trả số lượng dòng bảng:

SELECT COUNT(*) FROM Persons kết trả :

Câu lệnh sau trả số lượng người lớn 20 tuổi:

SELECT COUNT(*) FROM Persons WHERE Age > 20 kết trả là:

Hàm COUNT(column):

(4)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Ví dụ ta có bảng Persons sau:

Câu lệnh sau trả số lượng người mà cột Age bảng không rỗng:

(5)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Mệnh đề COUNT DISTINCT

Lưu ý: Các ví dụ hoạt động với CSDL Oracle MS SQL Server, không hoạt động MS Access (chưa thử nhiệm với hệ CSDL khác!)

Từ khoá DISTINCT COUNT dùng chung với để đếm số lượng kết không trùng

Cú pháp sau:

(6)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Ví dụ ta có bảng Orders sau:

Câu lệnh SQL sau:

(7)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

SQL có sẵn nhiều hàm để thực đếm và tính tốn.

Cú pháp:

(8)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

SQL có sẵn nhiều hàm để thực đếm Bảng liệu dùng ví sụ tiếp theo:

Câu lệnh SQL sau:

(9)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Hàm AVG(column)

Hàm AVG trả giá trị trung bình tính theo cột định dịng chọn Các giá trị NULL không xét đến tính giá trị trung bình

Ví dụ:

Câu lệnh sau tính số tuổi trung bình người có tuổi 20:

(10)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Hàm MAX(column)

Hàm MAX trả giá trị lớn cột Các giá trị NULL không xét đến

Ví dụ:

(11)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Hàm MIN(column)

Hàm MAX trả giá trị nhỏ cột Các giá trị NULL không xét đến

Ví dụ:

SELECT MIN(Age) FROM Persons kết trả về: 19

(12)

29.1.1 HÀM COUNT(), MIN(), MAX(), SUM(), AVG()

Hàm SUM(column)

Hàm SUM trả tổng giá trị cột Các giá trị NULL khơng xét đến

Ví dụ:

Tìm tổng số tuổi tất người có bảng: SELECT SUM(Age) FROM Persons

kết trả về: 98

Ví dụ:

Tìm tổng số tuổi tất người có tuổi lớn 20:

(13)

29.2 HÀM GOM NHÓM 29.2.1 CÚ PHÁP

Các hàm tập hợp (ví dụ SUM) thông thường cần thêm chức mệnh đề GROUP BY

GROUP BY

Mệnh đề GROUP BY thêm vào SQL hàm tập hợp (như SUM) trả tập hợp giá trị cột chúng gọi, khơng có GROUP BY ta khơng thể tính tổng giá trị theo nhóm riêng lẻ cột

Cú pháp GROUP BY sau:

(14)

29.2.1 CÚ PHÁP

Ví dụ sử dụng GROUP BY:

Giả sử ta có bảng Sales sau:

Câu lệnh SQL sau:

(15)

29.2.1 CÚ PHÁP

Kết trả mà ta mong đợi Ta thêm mệnh đề GROUP BY vào câu lệnh SQL:

SELECT Company, SUM(Amount) FROM Sales GROUP BY Company

và kết trả lần là:

(16)

29.2.2 ĐIỀU KIỆN GOM NHÓM

HAVING

Mệnh đề HAVING thêm vào SQL mệnh đề

WHERE không áp dụng hàm tập hợp (như SUM) Nếu khơng có HAVING, ta khơng thể kiểm tra điều kiện với hàm tập hợp

Cú pháp HAVING sau:

SELECT tên_cột, SUM(tên_cột) FROM tên_bảng GROUP BY tên_cột

HAVING SUM(tên_cột) điều_kiện giá_trị

Ta sử dụng lại bảng Sales Câu lệnh SQL sau: SELECT Company, SUM(Amount) FROM Sales GROUP BY Company

(17)

29.2.2 ĐIỀU KIỆN GOM NHĨM Sẽ trả kết quả:

Với SQL, bí danh sử dụng cho tên cột tên bảng.

Bí danh cột:

Cú pháp bí danh cột sau:

SELECT tên_cột AS bí_danh_cột FROM tên_bảng

Bí danh bảng:

Bí danh bảng có cú pháp sau:

(18)

29.2.2 ĐIỀU KIỆN GOM NHĨM

Ví dụ sử dụng bí danh cột:

Ta có bảng Persons sau:

Câu lệnh SQL sau:

SELECT LastName AS Họ, FirstName AS Tên FROM Persons

(19)

29.3 THỨ TỰ THỰC HIỆN CÂU TRUY VẤN CÓ MỆNH ĐỀ GROUP BY VÀ HAVING

Mệnh đề GROUP BY

Các thuộc tính mệnh đề SELECT (trừ thuộc tính hàm kết hợp) phải xuất mệnh đề GROUP BY

Mệnh đề HAVING

Sử dụng hàm kết hợp mệnh đề SELECT để kiểm tra số điều kiện

Chỉ kiểm tra điều kiện nhóm, khơng điều kiện lọc

(20)

29.3 THỨ TỰ THỰC HIỆN CÂU TRUY VẤN CÓ MỆNH ĐỀ GROUP BY VÀ HAVING

Thứ tự thực câu truy vấn có mệnh đề GROUP BY HAVING

(1) Chọn dòng thỏa điều kiện mệnh đề WHERE

(2) Những dòng gom thành nhiều nhóm tương ứng với mệnh đề GROUP BY

(3) Áp dụng hàm kết hợp cho nhóm

(4) Bỏ qua nhóm khơng thỏa điều kiện mệnh đề HAVING

(21)

29.4 BÀI TẬP LIÊN QUAN ĐẾN HÀM KẾT HỢP VÀ GOM NHÓM

(22)

29.5.1 TRUY VẤN CON Ở MỆNH ĐỀ FROM Kết trả câu truy vấn phụ bảng

- Bảng trung gian trình truy vấn - Khơng có lưu trữ thật

(23)

29.5.1 TRUY VẤN CON Ở MỆNH ĐỀ FROM Ví dụ:

Trong sở liệu quản lý vật tư, muốn hiển thị tên nhân viên xuất vật tư ngày ‘12/08/2008’, câu lệnh truy vấn sau thực yêu cầu

SELECT nv.ten_nv FROM nhan_vien As nv, (SELECT manv_xuat FROM phieu_xuat WHERE ngay_xuat = ‘08/12/2008’) As Temp

(24)

29.5.2 ĐIỀU KIỆN KẾT NỐI CỦA MỆNH ĐỀ FROM

29.5.2.1 KẾT NỐI BẰNG

(25)

29.5.2.2 KẾT NỐI NGOÀI

LEFT JOIN : Trả tất hàng từ bảng thứ R1, cho dù không so trùng bảng thứ hai R2 Nếu hàng bảng R1 không so trùng bảng R2, hàng liệt kê (thay giá trị NULL)

(26)

Ngày đăng: 02/05/2021, 11:31

Xem thêm:

TỪ KHÓA LIÊN QUAN

w