Hàm Hàm COUNT trong Oracle
Trong bài này chúng ta sẽ tìm hiểu hàm COUNT trong Oracle.
Hàm COUNT dùng để đếm số lượng records trả về của một biểu thức, và thường được sử dụng trong câu lệnh Select để đếm tổng số record của table.
1. Hàm COUNT trong Oracle
Sau đây là cú pháp và cách sử dụng hàm COUNT.
Cú pháp
SELECT COUNT(aggregate_expression) FROM tables [WHERE conditions];
Trong đó:
Bài viết này được đăng tại [free tuts .net]
aggregate_expression
là tên của field cần đếm.tables
là những bảng cần đếm.WHERE conditions
là điều kiện lọc dữ liệu.
Return
Trả về một số tự nhiên, đó chính là số đếm của tổng các record thỏa điều kiện của câu lệnh SQL.
Version
Hàm này sử dụng được ở các phiên bản sau:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
2. Ví dụ hàm COUNT trong Oracle
Sau đây là một vài ví dụ, các bạn tham khảo để hiểu rõ hơn nhé.
Ví dụ 1: Đếm tổng số sinh viên đang học khóa CNTT.
SELECT COUNT(student_id) AS total FROM students WHERE department = 'CNTT'
Ví dụ 2: Đếm tổng số nhân viên có mức lương lớn hơn 5.000.000đ.
SELECT COUNT(employee_id) AS total FROM employees WHERE salary > '5000000'
Lưu ý:
- Với những giá trị NULL thì mặc định hàm COUNT sẽ không đếm.
- Bạn truyền vào * nếu muốn đếm tất cả các field.
Nếu bạn muốn đếm và loại bỏ dữ liệu bị trùng thì hãy dùng từ khóa DISTINCT
.
Ví dụ 3: Đếm tổng số phòng ban có nhân viên có lương lớn hơn 10.000.000đ / tháng.
Với ví dụ này thì mình sẽ đếm trong bảng employee, bảng này có mã phòng ban nên chỉ cần COUNT UNIQUE mã phòng ban là được.
SELECT COUNT(DISTINCT department_id) AS "Department Unique" FROM employees WHERE salary > 10000000;
3. Hàm COUNT kết hợp Group By
Hàm COUNT sử dụng rất hay trong Group By, và hay như thế nào thì chúng ta cùng xem ví dụ dưới đây.
Đề bài: Hãy đếm tổng số nhân viên của từng phòng ban.
Giả sử ta có hai bảng đó nhà:
- NHANVIEN (MANHANVIEN | TENNHANVIEN | MAPHONGBAN)
- PHONGBAN (MAPHONGBAN, TENPHONGBAN)
Trong đó MAPHONGBAN là khóa ngoại của bảng NHANVIEN. Câu truy vấn cuối cùng cua chúng ta như sau:
SELECT COUNT(MANHANVIEN) AS "TONG NHAN VIEN", TENPHONGBAN, MAPHONGBAN FROM NHANVIEN NV JOIN PHONGBAN PB ON NV.MAPHONGBAN = PB.MAPHONGBAN GROUP BY NV.MAPHONGBAN
Câu truy vấn này sẽ trả về danh sách số lượng nhân viên của từng phòng ban.