Bài giảng thực hành cơ SỞ DỮ liệU



tải về 4.27 Mb.
Chế độ xem pdf
trang29/43
Chuyển đổi dữ liệu13.11.2023
Kích4.27 Mb.
#55638
1   ...   25   26   27   28   29   30   31   32   ...   43
TH CSDL 2015Sep
NEW.Bài giảng CSDL sau nghiệm thu-2023, 6. Đề cương Cơ sở dữ liệu- sau nghiệm thu. 23.02.2022, Chuong01-CSDL
 
Hàm COUNT
Hàm COUNT là hàm đếm số lượng, chẳng hạn chúng ta có thể đếm số lượng sản phẩm 
đang được bán như sau: 
SELECT COUNT(*) AS Total 
FROM products 
Kết quả trả về như sau: 
Lưu ý: một phiên bản khác của hàm COUNT sử dụng tham số là tên cột. Nếu cách này 
được sử dụng, sẽ chỉ đếm các dòng mà giá trị tại cột đó là khác NULL. 
2. Mệnh đề nhóm GROUP BY 
Mệnh đề GROUP BY được sử dụng để gộp các bản ghi có cùng giá trị tại một hay nhiều 
cột, thành một tập hợp. GROUP BY nếu có thì nó phải đứng sau mệnh đề WHERE hoặc 
FROM. Theo sau từ khoá GROUP BY là một danh sách các biểu thức, phân cách nhau 
bởi dấu phẩy. 
SELECT col1_,col_2,... col_n, các hàm nhóm(biểu thức) 
FROM tên bảng 
WHERE điều kiện 
GROUP BY col_1, col_2, ... col_n 
ORDER BY danh sách cột 
Theo định nghĩa, hàm nhóm cho phép chúng ta thực hiện một phép tính trên một tập bản 
ghi và trả về một giá trị. Hàm nhóm bỏ qua các giá trị null khi thực hiện tính toán, ngoại 
trừ hàm COUNT. Hàm nhóm thường được sử dụng với mệnh đề GROUP BY của câu 
lệnh SELECT.


70 
Ví dụ: Giả sử muốn phân chia các đơn đặt hàng theo các nhóm phụ thuộc vào tình trạng 
của các đơn hàng, có thể làm như sau:
SELECT status 
FROM orders 
GROUP BY status 
Kết quả trả về như sau: 
Các hàm nhóm được sử dụng với GROUP BY để thực hiện tính toán trên mỗi nhóm 
các
 
bản ghi
 và 
trả về một giá trị duy nhất cho mỗi hàng.

Ví dụ: m
uốn biết 
có bao nhiêu đơn đặt hàng trong từng nhóm trạng thái, có thể sử dụng 
hàm COUNT như sau: 
SELECT status, count(*) 
FROM orders 
GROUP BY status 
Kết quả trả về như sau: 


71 
Ví dụ: m
uốn biết 
có bao nhiêu loại sản phẩm trong mỗi loại dòng sản phẩm 
SELECT productLine, count(*) 
FROM products 
GROUP BY productline 
Ví dụ: Để có được tổng số tiền cho mỗi sản phẩm đã bán, chúng ta chỉ cần sử dụng chức 
năng SUM và nhóm sản phẩm. Dưới đây là truy vấn: 
SELECT productCode,sum(priceEach * quantityOrdered) total 
FROM orderdetails 
GROUP by productCode 
Kết quả trả về như sau: 


72 
Ví dụ: Giả sử chúng ta muốn xem các kết quả của truy vấn trên, hiển thị theo thứ tự tăng 
dần chúng ta làm như sau: 
SELECT productCode,sum(priceEach * quantityOrdered) total 
FROM orderdetails 
GROUP by productCode
ORDER BY total DESC 
Kết quả trả về như sau: 
Lưu ý: sự khác nhau giữa GROUP BY trong MySQL và ANSI SQL
MySQL tuân theo chuẩn ANSI SQL. Tuy nhiên, có 2 sự khác biệt khi sử dụng GROUP 
BY trong MySQL như sau: 
Trong ANSI SQL, phải thực hiện GROUP BY tất cả các cột xuất hiện trong mệnh 
đề SELECT. MySQL không đòi hỏi như vậy, có thể đưa thêm các cột vào trong 
mệnh đề SELECT và không bắt buộc chúng phải xuất hiện ở mệnh đề GROUP 
BY. 


73 
 MySQL cũng cho phép sắp xếp các nhóm theo thứ tự các kết quả tính toán, mặc 
định là giảm dần. 

tải về 4.27 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   25   26   27   28   29   30   31   32   ...   43




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương