Computer >> Máy Tính >  >> Lập trình >> MySQL

Đếm xem có bao nhiêu hàng có cùng giá trị trong MySQL?

Để đếm số hàng có cùng giá trị bằng cách sử dụng hàm COUNT (*) và GROUP BY. Cú pháp như sau -

SELECT yourColumName1, count(*) as anyVariableName from yourTableName GROUP BY yourColumName1;

Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table RowWithSameValue
   −> (
   −> StudentId int,
   −> StudentName varchar(100),
   −> StudentMarks int
   −> );
Query OK, 0 rows affected (0.55 sec)

Chèn một số bản ghi có cùng giá trị. Ở đây, chúng tôi đã thêm các điểm giống nhau cho nhiều học sinh để làm ví dụ. Truy vấn để chèn bản ghi như sau -

mysql> insert into RowWithSameValue values(100,'Carol',89);
Query OK, 1 row affected (0.21 sec)

mysql> insert into RowWithSameValue values(101,'Sam',89);
Query OK, 1 row affected (0.15 sec)

mysql> insert into RowWithSameValue values(102,'John',99);
Query OK, 1 row affected (0.12 sec)

mysql> insert into RowWithSameValue values(103,'Johnson',89);
Query OK, 1 row affected (0.15 sec)

Bây giờ bạn có thể hiển thị tất cả các bản ghi mà chúng tôi đã chèn ở trên. Truy vấn để hiển thị tất cả các bản ghi như sau -

mysql> select *from RowWithSameValue;

Sau đây là kết quả -

+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
|       100 | Carol       |           89 |
|       101 | Sam         |           89 |
|       102 | John        |           99 |
|       103 | Johnson     |           89 |
+-----------+-------------+--------------+
4 rows in set (0.00 sec)

Triển khai cú pháp mà chúng ta đã thảo luận ở phần đầu để đếm các hàng có cùng giá trị -

mysql> SELECT StudentMarks, count(*) as SameValue from RowWithSameValue GROUP BY StudentMarks;

Sau đây là đầu ra hiển thị số lượng nhiều giá trị -

+--------------+-----------+
| StudentMarks | SameValue |
+--------------+-----------+
|           89 |         3 |
|           99 |         1 |
+--------------+-----------+
2 rows in set (0.00 sec)