MySQLはSUM()関数内の式をどのように評価するのか
SUM()関数内の式の評価方法
SUM()関数内に式を含めると、MySQLはデータの各行に対してその式を評価し、評価結果の合計を返します。つまり、単純に列の値を合計するだけでなく、行ごとに計算処理を加えた上で合計値を求めることができます。
例:employeeテーブル
以下のようなデータを持つ「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)
式を使った合計の計算
例えば、各従業員の給与から1000ルピーを差し引いた上での給与合計を求めたい場合、SUM()関数内に式を記述することで実現できます。以下のクエリを実行すると、目的の結果が得られます。
mysql> Select SUM(Salary-1000) from Employee;
+------------------+
| SUM(Salary-1000) |
+------------------+
| 204000 |
+------------------+
1 row in set (0.05 sec)
この結果では、MySQLが各行のSalaryから1000を差し引いた値(例:Gauravの場合は49000)を順に評価し、それらを合計して204000という結果を返しています。なお、SalaryがNULLの行(AryanとVinay)は計算対象から自動的に除外される点にも注意してください。
このように、SUM()関数内で式を使用することで、集計前にデータを加工した柔軟な合計計算が可能になります。
-
MySQLのSELECTステートメントでCAST関数を使用する方法
MySQLのCAST()関数とはMySQLのCAST()関数は、任意の型の値を指定した別の型に変換するための関数です。日付を文字列として扱いたい場合や、文字列を数値に変換したい場合など、データ型の変換が必要な場面で活躍します。ここでは、実際にテーブルを作成し、SELECTステートメント内でCAST()関数を使用してDATE型の値をCHAR型(文字列)に変換する手順を紹介します。サンプルテーブルの作成まず、日付型のカラムを持つテーブルを作成します。mysql> create table castFunctionDemo-> (-> ShippingDate date->
-
MySQLのCASE式で「OR」条件を実現する方法を解説
MySQLのCASE式で「OR」条件を実現する方法 MySQLのCASE式では、複数のWHEN句を組み合わせることで、「OR」に相当する条件分岐を実現できます。さらに、WHEN句の中にOR演算子を直接記述することも可能です。ここでは、まずサンプルテーブルを作成し、実際の動作を順番に確認していきましょう。 1. サンプルテーブルの作成 まず、以下のクエリでサンプルテーブルを作成します。 mysql> create table caseOrConditionDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KE