SQL  Các hàm tổng hợp (ANSI):

Một phần của tài liệu Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access" (Trang 38 - 50)

 Xắp sếp kết quả trả về: ORDER BY

4.1SQL  Các hàm tổng hợp (ANSI):

Các hàm tổng hợp (ANSI):COUNT()SUM()AVG()MIN()MAX()

4.1 SQL

COUNT()

Đếm số lần xuất hiện của giá trị hoặc số dòng dữ liệu của bảng.

Ví dụ:

SELECT COUNT(Dept_no) FROM Staffs

Đếm số lượng nhân viên đã được gán giá trị Dept_no

SELECT COUNT(DISTINCT Dept_no) FROM Staffs

Đếm số lượng mã phòng sử dụng

SELECT COUNT(*) FROM Staffs

4.1 SQL

SUM()

Tính tổng giá trị của cột

Kiểu dữ liệu của cột phải là kiểu số

Đối số có thể là một biểu thức mà kết quả trả về là kiểu số.

Ví dụ:

SELECT SUM(pay) FROM Salary

Tính tổng giá trị cột pay trong bảng Salary

SELECT SUM(pay+1500) FROM Salary

4.1 SQL

AVG()

Tính trung bình cộng giá trị của cột

Kiểu dữ liệu của cột phải là kiểu số

Ví dụ:

SELECT AVG(pay) FROM Salary

4.1 SQL

MIN()

Lấy giá trị nhỏ nhất trong các giá trị của cột

Đối số có thể là một biểu thức

Ví dụ:

SELECT MIN(mark) FROM Marks (adsbygoogle = window.adsbygoogle || []).push({});

4.1 SQL

MAX()

Lấy giá trị lớn nhất trong các giá trị của cột

Đối số có thể là một biểu thức

Ví dụ:

SELECT MAX(mark) FROM Marks

4.1 SQL

Nhóm kết quả: GROUP BY

Các hàm tổng hợp ở trên tính toán dựa trên dữ liệu của các cột trong toàn bộ bảng (grant-totals)

Kết hợp các hàm tổng hợp với mệnh đề GROUP BY để tính toán kết quả theo nhóm (sub-totals).

Ví dụ:

SELECT MaSP, SUM(ThanhTien) FROM HoaDon GROUP BY MaSP

Trả ra danh sách mã sản phẩm cùng tổng số tiền bán được của mỗi sản phẩm từ bảng HoaDon

SELECT MaSV, AVG(Diem) FROM DiemThi GROUP BY MaSV

Trả ra danh sách mã sinh viên cùng với điểm trung bình cộng của các môn học mà SV đã thi.

4.1 SQL

Lọc nhóm: HAVING

Dùng với GROUP BY và các hàm tổng hợp

Chỉ lấy ra nhóm thỏa mãn điều kiện nào đó của kết quả hàm tổng hợp

Ví dụ:

SELECT MaSV, AVG(Diem) FROM DiemThi GROUP BY MaSV HAVING AVG(Diem)>=50

=> Lấy ra danh sách sinh viên và điểm trung bình của những sinh viên có điểm trung bình >=50

4.1 SQL

Liên kết bảng:

Lấy dữ liệu từ nhiều bảng

Xác định liên kết bằng điều kiện WHERE

Ví dụ:

SELECT SV.TenSV, Lop.TenLop FROM SV, Lop

Trả ra tích đề các của 2 bảng

SELECT SV.TenSV, Lop.TenLop FROM SV, Lop (adsbygoogle = window.adsbygoogle || []).push({});

WHERE SV.MaLop = Lop.MaLop

4.1 SQL

Liên kết bảng: INNER JOIN

SELECT SV.TenSV, Lop.TenLop

4.1 SQL

Truy vấn lồng nhau: nested query; sub query

Ví dụ:

SELECT * FROM SanPham WHERE MaSP = (SELECT MaSP FROM HoaDon Where MaNV=‘NV1’ AND NgayHD=’25-10-2006’)

Lấy ra thông tin về sản phẩm do nhân viên có mã ‘NV1’ bán vào ngày ’25-10-2006’. (Giả sử trong ngày hôm đó nhân viên ‘NV1’ chỉ bán được 1 sản phẩm)

SELECT * FROM SanPham WHERE MaSP IN (SELECT MaSP FROM HoaDon Where NgayHD=’25-10-2006’)

Lấy ra danh sách và thông tin về sản phẩm được bán vào ngày ’25-10- 2006’ bởi tất cả nhân viên.

4.1 SQL

SELECT * FROM Depts WHERE DeptCode IN

(SELECT DISTINCT DeptCode FROM Staffs)

4.1 SQL

Một phần của tài liệu Kỹ thuật phần mềm- Chương 4 " SQL & MS. Access" (Trang 38 - 50)