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

MySQLでSUM()をIF()と一緒に使用できますか?


はい、MySQLのIF()でSUM()を使用できます。まず、デモテーブルを作成しましょう:

mysql> create table DemoTable
(
   Value int,
   Value2 int
);
Query OK, 0 rows affected (0.51 sec)

以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。

mysql> insert into DemoTable values(100,400);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(100,400);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(400,100);
Query OK, 1 row affected (0.14 sec)

以下は、selectコマンドを使用してテーブルのレコードを表示するためのクエリです。

mysql> select *from DemoTable;

これにより、次の出力が生成されます

+-------+--------+
| Value | Value2 |
+-------+--------+
|   100 |    400 |
|   100 |    400 |
|   400 |    100 |
+-------+--------+
3 rows in set (0.00 sec)

以下は、上記の表に含まれる100と400の数を計算するIF()とともにSUM()を使用するためのクエリです。

mysql> SELECT SUM(IF(Value=100, 1, 0) + IF(Value2=100, 1, 0)) as Hundred,
SUM(IF(Value=400, 1, 0) + IF(Value2=400, 1, 0)) as FourHundred
FROM DemoTable;

これにより、次の出力が生成されます。

+---------+--------------+
| Hundred | FourHundred  |
+---------+--------------+
|       3 |            3 |
+---------+--------------+
1 row in set (0.00 sec)

  1. MySQL WHERE句でSUM()関数の結果を使用できますか?

    MySQLのWHEREではなくHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable (    Name varchar(50),    Price int ); Query OK, 0 rows affected (0.79 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',30); Query OK, 1 row affected (0.15

  2. MySQL8で列名として「ランク」を使用できますか?

    ランクは、MySQLバージョン8.0.2で定義されているMySQLの予約語です。したがって、ランクを列名として使用することはできません。ランクの周りでバッククォートを使用する必要があります。 まず、作業中のMySQLのバージョンを確認しましょう。ここでは、MySQLバージョン8.0.12を使用しています- mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12    | +-----------+ 1 row in set (0.00 sec) 列名に「ランク」を使用し