当我使用 SUM() 函数中的条件表达式时,MySQL 会如何计算?


我们知道,可以通过在 SUM() 函数中使用条件表达式来获取满足条件的行数。因此,在这种情况下,MySQL 在条件为真时每次计算为 1,为假时每次计算为 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。

更新于: 2020 年 6 月 22 日

113 次浏览

开启你的职业生涯

完成课程,获得认证

开始
广告
© . All rights reserved.