MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

SUM()関数内で条件式を使用する場合、MySQLはどのように評価しますか?


ご存知のとおり、SUM()関数内で条件式を使用すると、条件を満たす行数を取得できます。したがって、この場合、MySQLは条件が真になるたびに1と評価され、条件が偽になるたびに0と評価されます。

それを理解するために、次の詳細を含む次のテーブル「従業員」の例を検討してください-

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を超える給与を受け取っていることを示しています。


  1. MySQL SELECTステートメントでCAST関数を使用するにはどうすればよいですか?

    MySQLのCAST()関数は、任意のタイプの値を指定されたタイプの値に変換します。まずテーブルを作成しましょう- mysql> create table castFunctionDemo    -> (    -> ShippingDate date    -> ); Query OK, 0 rows affected (0.74 sec) 以下は、挿入コマンド-を使用してテーブルにいくつかのレコードを挿入するためのクエリです。 mysql> insert into castFunctionDemo

  2. MySQL CASE式で「OR」条件を使用するにはどうすればよいですか?

    MySQLCASE式に「OR」のような同じ条件を設定します。まず、サンプルテーブルを作成しましょう。 以下はクエリです mysql> create table caseOrConditionDemo    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(100),    -> Score int    -> ); Query OK, 0 rows affect