当我在SUM()函数中使用条件表达式时,MySQL如何评估?

众所周知,通过在SUM()函数中使用条件表达式,我们可以获得满足条件的行数。因此,在这种情况下,每当条件为true时,MySQL便求值为1,而每当条件为false时MySQL便求为0。

要理解它,请请看以下表“ employee”的示例,其中包含以下详细信息-

mysql> Select * from Employee;
+----+--------+--------+
| ID | Name   | Salary |
+----+--------+--------+
| 1  | Gaurav | 50000  |
| 2  | Rahul  | 20000  |
| 3  | Advik  | 25000  |
| 4  | Aarav  | 65000  |
| 5  | Ram    | 20000  |
| 6  | Mohan  | 30000  |
| 7  | Aryan  |  NULL  |
| 8  | Vinay  |  NULL  |
+----+--------+--------+
8 rows in set (0.00 sec)

现在,假设如果我们想知道薪水大于20000的行总数,则可以在SUM()函数中使用条件表达式,如下所示:

mysql> Select SUM(Salary>20000) from employee568;
+-------------------+
| SUM(Salary>20000) |
+-------------------+
|                 4 |
+-------------------+
1 row in set (0.00 sec)

以上结果集显示,有4名员工的薪水超过20000。

猜你喜欢