Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 통합 쿼리에서 계산을 수행하는 방법은 무엇입니까?

<시간/>

유니온에 대한 카운트를 수행하려면, 즉 UNION 결과의 카운트를 얻으려면 아래 구문을 사용하십시오 -

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

위의 구문을 이해하기 위해 일부 레코드가 있는 두 개의 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

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)

두 번째 테이블을 생성하는 쿼리입니다.

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

insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다.

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)

두 테이블 모두에서 동일한 레코드가 있으면 한 번만 고려됩니다. 다음은 통합 쿼리를 계산하는 쿼리입니다.

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)