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

MySQLでCASEWHENステートメントを使用してカウントを実行しますか?


このために、CASEWHENステートメントを使用できます。まずテーブルを作成しましょう-

mysql> create table DemoTable1910
   (
   FirstName varchar(20),
   Marks int
   );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1910 values('Chris',45);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1910 values('David',85);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1910 values('Chris',55);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1910 values('Chris',98);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1910 values('David',98);
Query OK, 1 row affected (0.00 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1910;

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

+-----------+-------+
| FirstName | Marks |
+-----------+-------+
| Chris     |    45 |
| David     |    85 |
| Chris     |    55 |
| Chris     |    98 |
| David     |    98 |
+-----------+-------+
5 rows in set (0.00 sec)

これは、列の値を効率的にカウントするためのクエリです-

mysql> select FirstName,
   sum(case when Marks=45 then 1 else 0 end),
   sum(case when Marks=98 then 1 else 0 end)
   from DemoTable1910
   group by FirstName;

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

+-----------+-------------------------------------------+-------------------------------------------+
| FirstName | sum(case when Marks=45 then 1 else 0 end) | sum(case when Marks=98 then 1 else 0 end) |
+-----------+-------------------------------------------+-------------------------------------------+
| Chris     |                                        1 |                                          1 |
| David     |                                        0 |                                          1 |
+-----------+-------------------------------------------+-------------------------------------------+
2 rows in set (0.00 sec)

  1. WHEN句を使用してMySQLCASEステートメントを実装する

    WHEN句を含むCASEステートメントは、条件を回避するために使用されます。以下は構文です- select *,    case when yourCondition then yourStatement    when yourCondition then yourStatement    .    . else yourStatement from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable    ->

  2. MySQLの場合のMySQLの代替

    MySQLのCASEWHENの代わりにIF()メソッドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1593    -> (    -> PlayerScore int    -> ); Query OK, 0 rows affected (0.44 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1593 values(78); Query OK, 1 row