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

Đếm sự hiện diện của giá trị NOT NULL trong MySQL

Để đếm sự hiện diện của giá trị NOT NULL, hãy sử dụng hàm tổng hợp COUNT (yourColumnName). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   NumberOfQuestion int,
   NumberOfSolution int
   );
Query OK, 0 rows affected (0.20 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Ở đây, một số giá trị là NULL -

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,10);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,2);
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,NULL);
Query OK, 1 row affected (0.03 sec)

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(20,NULL);
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(30,19);
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(NumberOfQuestion,NumberOfSolution) values(30,1);
Query OK, 1 row affected (0.04 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----+------------------+------------------+
| Id | NumberOfQuestion | NumberOfSolution |
+----+------------------+------------------+
| 1  | 20               | 10               |
| 2  | 20               | 2                |
| 3  | 20               | NULL             |
| 4  | 20               | NULL             |
| 5  | 30               | 19               |
| 6  | 30               | 1                |
+----+------------------+------------------+
6 rows in set (0.00 sec)

Sau đây là truy vấn để đếm sự hiện diện của giá trị. Giá trị giống nhau KHÔNG được NULL, tức là các giá trị NULL sẽ không được tính -

mysql> SELECT NumberOfQuestion, COUNT(NumberOfSolution) as NumberOfRows FROM DemoTable GROUP BY NumberOfQuestion;

Điều này sẽ tạo ra kết quả sau -

+------------------+--------------+
| NumberOfQuestion | NumberOfRows |
+------------------+--------------+
| 20               | 2            |
| 30               | 2            |
+------------------+--------------+
2 rows in set (0.00 sec)