Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đếm số giá trị dương theo hàng (ngang) trong MySQL

Sử dụng COUNT(điều_kiện OR NULL) cho từng cột rồi cộng dồn để đếm số giá trị > 0 trên một hàng.

Ví dụ

Tạo bảng 4 cột số:

mysql> create table DemoTable ( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    FirstValue int, 
    SecondValue int, 
    ThirdValue int, 
    FourthValue int 
); 
Query OK, 0 rows affected (0.59 sec)
mysql> insert into DemoTable(FirstValue,SecondValue,ThirdValue,FourthValue) values(-18,45,0,155); 
mysql> insert into DemoTable(FirstValue,SecondValue,ThirdValue,FourthValue) values(0,235,null,15);

Dữ liệu:

+----+------------+-------------+------------+-------------+
| Id | FirstValue | SecondValue | ThirdValue | FourthValue |
+----+------------+-------------+------------+-------------+
| 1  | -18        | 45          | 0          | 155         |
| 2  | 0          | 235         | NULL       | 15          |
+----+------------+-------------+------------+-------------+

Đếm giá trị > 0 trên mỗi hàng

mysql> SELECT 
    COUNT(FirstValue > 0 OR NULL) + 
    COUNT(SecondValue > 0 OR NULL) + 
    COUNT(ThirdValue > 0 OR NULL) + 
    COUNT(FourthValue > 0 OR NULL) 
    AS TOTAL_VALUE FROM DemoTable;
+-------------+
| TOTAL_VALUE |
+-------------+
| 4           |
+-------------+

Giải thích: Hàng 1: 45, 155 (2 giá trị >0). Hàng 2: 235, 15 (2 giá trị >0). Tổng = 4.

Cơ chế: Biểu thức FirstValue > 0 trả về 1 (true) hoặc 0 (false). OR NULL chuyển false thành NULL. COUNT() chỉ đếm giá trị non-NULL.