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

MySQL SUM()関数は、列にNULL値があるかどうかをどのように評価しますか?


NULL値も持つ列の値の合計を計算している場合、MySQL SUM()関数はNULL値を無視し、残りの値の合計を実行するとします。それを理解するために、次の詳細を含む次の表「従業員」の例を検討してください-

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)

ここで、上記の表の従業員の合計給与を取得する場合、SUM()関数を使用して計算するときに、NULL値を無視するとします。次のクエリは、必要な結果セットを生成します-

mysql> Select SUM(Salary) from Employee;
+-------------+
| SUM(Salary) |
+-------------+
| 210000      |
+-------------+
1 row in set (0.00 sec)

次のクエリを使用して確認することもできます-

mysql> Select SUM(Salary) from Employee WHERE Salary IS NOT NULL;
+-------------+
| SUM(Salary) |
+-------------+
|   210000    |
+-------------+
1 row in set (0.00 sec)

  1. MySQLで列の値に文字列または数字が含まれていることを確認するにはどうすればよいですか?

    文字列値のみが必要な場合は、次の構文を使用します- select *from yourTableName where yourColumnName NOT regexp '^[0-9]+$'; 数字のみが必要な場合は、次の構文を使用します- select *from yourTableName where yourColumnName regexp '^[0-9]+$'; まずテーブルを作成しましょう- mysql> create table DemoTable(    Id varchar(100) ); Query OK, 0

  2. MySQLで月ごとにテーブルの値を合計するにはどうすればよいですか?

    これには、EXTRACT()を使用します。これにより、特定の月のレコードを抽出できます。たとえば、1月のすべての価格を追加します(年に関係なく)。 まず、-を作成しましょう mysql> create table DemoTable1415    -> (    -> ProductPurchaseDate date,    -> ProductPrice int    -> ); Query OK, 0 rows affected (0.53 sec) insert-を使用して、