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

Nhiều COUNT () cho nhiều điều kiện trong một truy vấn MySQL?

Bạn có thể đếm nhiều COUNT () cho nhiều điều kiện trong một truy vấn duy nhất bằng cách sử dụng GROUP BY.

Cú pháp như sau -

SELECT yourColumnName,COUNT(*) from yourTableName group by yourColumnName;

Để 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 MultipleCountDemo
-> (
-> Id int,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (2.17 sec)

Chèn bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau.

mysql> insert into MultipleCountDemo values(1,'Carol',21);
Query OK, 1 row affected (0.27 sec)

mysql> insert into MultipleCountDemo values(2,'Sam',21);
Query OK, 1 row affected (0.29 sec)

mysql> insert into MultipleCountDemo values(3,'Bob',22);
Query OK, 1 row affected (0.10 sec)

mysql> insert into MultipleCountDemo values(4,'John',23);
Query OK, 1 row affected (0.24 sec)

mysql> insert into MultipleCountDemo values(5,'David',22);
Query OK, 1 row affected (0.12 sec)

mysql> insert into MultipleCountDemo values(6,'Adam',22);
Query OK, 1 row affected (0.21 sec)

mysql> insert into MultipleCountDemo values(7,'Johnson',23);
Query OK, 1 row affected (0.14 sec)

mysql> insert into MultipleCountDemo values(8,'Elizabeth',23);
Query OK, 1 row affected (0.25 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from MultipleCountDemo;

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

+------+-----------+------+
| Id | Name | Age |
+------+-----------+------+
| 1 | Carol | 21 |
| 2 | Sam | 21 |
| 3 | Bob | 22 |
| 4 | John | 23 |
| 5 | David | 22 |
| 6 | Adam | 22 |
| 7 | Johnson | 23 |
| 8 | Elizabeth | 23 |
+------+-----------+------+
8 rows in set (0.00 sec)

Bây giờ đây là truy vấn cho nhiều count () cho nhiều điều kiện trong một truy vấn.

mysql> select Age,count(*)as AllSingleCount from MultipleCountDemo group by Age;

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

+------+----------------+
| Age | AllSingleCount |
+------+----------------+
| 21 | 2 |
| 22 | 3 |
| 23 | 3 |
+------+----------------+
3 rows in set (0.00 sec)