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

MySQLユニオンクエリをカウントするにはどうすればよいですか?


ユニオンをカウントするには、つまりUNIONの結果のカウントを取得するには、次の構文を使用します-

SELECT COUNT(*)
FROM
(
SELECT yourColumName1 from yourTableName1
UNION
SELECT yourColumName1 from yourTableName2
) anyVariableName;

上記の構文を理解するために、いくつかのレコードを含む2つのテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table union_Table1
-> (
-> UserId int
-> );
Query OK, 0 rows affected (0.47 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into union_Table1 values(1);
Query OK, 1 row affected (0.18 sec)

mysql> insert into union_Table1 values(10);
Query OK, 1 row affected (0.12 sec)

mysql> insert into union_Table1 values(20);
Query OK, 1 row affected (0.09 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from union_Table1;

以下は出力です-

+--------+
| UserId |
+--------+
| 1      |
| 10     |
| 20     |
+--------+
3 rows in set (0.00 sec)

2番目のテーブルを作成するためのクエリ。

mysql> create table union_Table2
-> (
-> UserId int
-> );
Query OK, 0 rows affected (0.69 sec)

挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです。

mysql> insert into union_Table2 values(1);
Query OK, 1 row affected (0.12 sec)

mysql> insert into union_Table2 values(30);
Query OK, 1 row affected (0.26 sec)

mysql> insert into union_Table2 values(50);
Query OK, 1 row affected (0.13 sec)

selectコマンドを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from union_Table2;

以下は出力です-

+--------+
| UserId |
+--------+
| 1      |
| 30     |
| 50     |
+--------+
3 rows in set (0.00 sec)

両方のテーブルで、レコードのいずれかが同じである場合、それは1回だけ考慮されます。ユニオンクエリを頼りにするクエリは次のとおりです。

mysql> select count(*) as UnionCount from
-> (
-> select distinct UserId from union_Table1
-> union
-> select distinct UserId from union_Table2
-> )tbl1;

以下は、カウントを表示する出力です。

+------------+
| UnionCount |
+------------+
| 5          |
+------------+
1 row in set (0.00 sec)

  1. 1つのMySQLクエリで2つのテーブルの行をカウントするにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1 (    Name varchar(40) ); Query OK, 0 rows affected (0.81 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values('Chris'); Query OK, 1 row affected (0.48 sec) mysql> insert into DemoTable1 values('Robe

  2. MySQLクエリでCASE条件でカウントを使用するにはどうすればよいですか?

    MySQLでこれにCASEWHENを使用し、COUNT()メソッド内でCASE条件を設定してカウントします。まずテーブルを作成しましょう- mysql> create table DemoTable1374    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(20),    -> Score int    -> ); Query OK, 0 rows affe