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

MySQL chọn đếm theo giá trị?

Bạn có thể sử dụng hàm COUNT () cho việc này. Trước tiên, hãy để chúng tôi tạo một bảng demo

mysql> create table countValueDemo
   -> (
   -> ShippingDatetime datetime,
   -> FirstValue int,
   -> SecondValue int
   -> );
Query OK, 0 rows affected (1.35 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into countValueDemo values('2019-01-23',1,2);
Query OK, 1 row affected (0.24 sec)
mysql> insert into countValueDemo values('2017-02-21',NULL,2);
Query OK, 1 row affected (0.13 sec)
mysql> insert into countValueDemo values('2016-04-12',1,NULL);
Query OK, 1 row affected (0.19 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 countValueDemo;

Sau đây là kết quả

+---------------------+------------+-------------+
| ShippingDatetime    | FirstValue | SecondValue |
+---------------------+------------+-------------+
| 2019-01-23 00:00:00 |          1 |           2 |
| 2017-02-21 00:00:00 |       NULL |           2 |
| 2016-04-12 00:00:00 |          1 |        NULL |
+---------------------+------------+-------------+
3 rows in set (0.00 sec)

Đây là truy vấn để chọn đếm theo giá trị

mysql> SELECT ShippingDatetime,
   -> COUNT(*),
   -> COUNT( IF( FirstValue = 1, 1, NULL ) ),
   -> COUNT( IF( SecondValue = 2, 1, NULL ) )
   -> FROM countValueDemo;

Sau đây là kết quả

+---------------------+----------+----------------------------------------+-----------------------------------------+
| ShippingDatetime    | COUNT(*) | COUNT( IF( FirstValue = 1, 1, NULL ) ) | COUNT( IF( SecondValue = 2, 1, NULL ) ) |
+---------------------+----------+----------------------------------------+-----------------------------------------+
| 2019-01-23 00:00:00 |        3 |                                      2 |                                       2 |
+---------------------+----------+----------------------------------------+-----------------------------------------+
1 row in set (0.08 sec)