當我使用 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.