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

単一のMySQLクエリで、ゼロ、NULL、およびゼロとNULLを除く個別の値をカウントします


まずテーブルを作成しましょう-

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

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values(NULL);
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.59 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.70 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(NULL);
Query OK, 1 row affected (0.16 sec)

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

mysql> select *from DemoTable;

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

+-------+
| Value |
+-------+
| 10    |
| NULL  |
| 10    |
| 0     |
| 20    |
| 10    |
| 0     |
| NULL  |
+-------+
8 rows in set (0.00 sec)

以下は、nullと0-

を除くすべての値でグループ化するクエリです。
mysql> select sum(Value is null) as NumberOfNull,
   sum(Value=0) as NumberOfZero,
   count(distinct Value > 0) as ValueExceptZeroAndNull
from DemoTable;

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

+--------------+--------------+------------------------+
| NumberOfNull | NumberOfZero | ValueExceptZeroAndNull |
+--------------+--------------+------------------------+
| 2            | 2            | 2                      |
+--------------+--------------+------------------------+
1 row in set (0.00 sec)

  1. MySQLで3つの列から個別の値を選択し、1つの列に表示します

    このために、単一のMySQLクエリでUNIONを複数回使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Value1 int,    -> Value2 int,    -> Value3 int    -> ); Query OK, 0 rows affected (0.69 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> i

  2. MySQLでGROUP_CONCATおよびCONCATとDISTINCTを使用して単一列の値を引用するにはどうすればよいですか?

    このために、replace()と一緒にgroup_concat()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1799      (      EmployeeId varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1799 values(