Hàm COUNT() trong MySQL
Trần Thị Vân
- 1206
- 15/08/2025
Chức năng của Hàm COUNT() trong MySQL
Hàm COUNT() trong MySQL được sử dụng để đếm số hàng trong một bảng, hàm COUNT() sẽ kết với từ khóa AS để tạo bí danh cho một giá trị, giúp cho việc lấy dữ liệu tiện lợi hơn, hàm COUNT() thường được dùng kết hợp với mệnh đề GROUP BY để đếm số hàng của từng nhóm.
Code Hàm COUNT() trong MySQL
select COUNT(id) as sosanpham from tb_sanpham;
select id_cha1,COUNT(id) as sosanpham from tb_sanpham where hienthi=1 GROUP BY id_cha1;
<?php
$dbhost = 'localhost';
$dbuser = 'webmoi_userdata'; // Tên username
$dbpass = 'xgZwEfQWE'; // Mật khẩu
// Kết nối đến tên username
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Không kết nối được: ' . mysql_error());
}
// Chọn tên database
mysql_select_db('webmoi_tendata');
// Xét kiểu tiếng việt
mysql_query('SET NAMES "utf8"');
// AVG(gia)
echo "<b>COUNT(id)</b><br>";
$sql ="select COUNT(id) as sosanpham from tb_sanpham";
$ketquamot = mysql_query($sql,$conn);
if(!$ketquamot){
die('Không thể lấy dữ liệu: ' . mysql_error());
}
$sosanphamct = mysql_fetch_array($ketquamot, MYSQL_ASSOC);
echo "Số sản phẩm: ".number_format($sosanphamct['sosanpham'],0,"",".")."<br>";
// COUNT(id) trong GROUP BY id_cha1
echo "<b>COUNT(id) trong GROUP BY id_cha1</b><br>";
$sql ="select id_cha1,COUNT(id) as sosanpham from tb_sanpham where hienthi=1 GROUP BY id_cha1";
$ketquahai = mysql_query($sql,$conn);
if(!$ketquahai){
die('Không thể lấy dữ liệu: ' . mysql_error());
}
// Dùng vòng lặp để lấy ra từng hàng trong bảng
while($row = mysql_fetch_array($ketquahai, MYSQL_ASSOC)){
echo "ID Cha cấp một: {$row['id_cha1']} <br> ".
"Số sản phẩm: ".number_format($row['sosanpham'],0,"",".")." <br> ".
"--------------------------------<br>";
}
// Đóng kết nối database
mysql_close($conn);
?>
Kết quả:
COUNT(id)
Số sản phẩm: 6
COUNT(id) trong GROUP BY id_cha1
ID Cha cấp một: 1
Số sản phẩm: 4
--------------------------------
ID Cha cấp một: 2
Số sản phẩm: 2
--------------------------------
Các trường hợp sử dụng Hàm COUNT() trong MySQL
Hàm COUNT() có thể được sử dụng theo nhiều cách tùy vào mục đích đếm dữ liệu. Nắm rõ từng trường hợp sẽ giúp bạn tránh đếm sai khi làm việc với cột có giá trị NULL, dữ liệu trùng lặp hoặc cần thống kê theo điều kiện.
Đếm toàn bộ bản ghi với COUNT(*)
COUNT(*) dùng để đếm số bản ghi trong kết quả truy vấn. Cách này tính tất cả các dòng, kể cả khi một hoặc nhiều cột trong dòng có giá trị NULL.
SELECT COUNT(*) AS tong_ban_ghi
FROM san_pham;
Đây là cách phù hợp khi bạn cần biết một bảng hoặc một tập kết quả đang có bao nhiêu bản ghi.
Đếm dữ liệu của một cột với COUNT(column)
Khi truyền tên cột vào COUNT(), MySQL chỉ đếm những dòng có giá trị khác NULL ở cột đó.
SELECT COUNT(email) AS so_email
FROM khach_hang;
Vì vậy, nếu một số khách hàng chưa có email, những bản ghi đó sẽ không được tính vào kết quả. Đây là điểm quan trọng cần phân biệt với COUNT(*).
Đếm giá trị không trùng lặp với COUNT(DISTINCT)
COUNT(DISTINCT) dùng để đếm số giá trị khác nhau trong một cột. Các giá trị bị lặp sẽ chỉ được tính một lần.
SELECT COUNT(DISTINCT tinh_thanh) AS so_tinh_thanh
FROM khach_hang;
Cách này hữu ích khi cần thống kê số lượng nhóm dữ liệu riêng biệt, chẳng hạn số tỉnh thành có khách hàng hoặc số danh mục đang xuất hiện trong bảng.
Kết hợp COUNT() với WHERE, GROUP BY và HAVING
COUNT() thường được kết hợp với các mệnh đề khác để tạo báo cáo thống kê linh hoạt. WHERE giúp lọc dữ liệu trước khi đếm, GROUP BY chia dữ liệu thành từng nhóm, còn HAVING lọc các nhóm sau khi đã thực hiện phép đếm.
SELECT danh_muc, COUNT(*) AS so_san_pham
FROM san_pham
WHERE trang_thai = 1
GROUP BY danh_muc
HAVING COUNT(*) > 5;
Trong ví dụ trên, MySQL chỉ xét các sản phẩm đang hoạt động, sau đó gom theo danh mục và chỉ giữ lại những danh mục có nhiều hơn 5 sản phẩm.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm COUNT() trong MySQL.
Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *