คำสั่งนับผลลัพธ์ของ UNION
หากต้องการนับจำนวนแถวจากผลลัพธ์ของ UNION ให้ใช้คำสั่ง SELECT COUNT(*) ร่วมกับ Subquery ดังนี้:
SELECT COUNT(*) FROM (
SELECT yourColumnName FROM yourTableName1
UNION
SELECT yourColumnName FROM yourTableName2
) AS alias_name;
ตัวอย่างการใช้งาน
สร้างตารางทดสอบ 2 ตาราง และเพิ่มข้อมูลตัวอย่าง:
ตารางที่ 1: union_Table1
CREATE TABLE union_Table1 (UserId INT);
INSERT INTO union_Table1 VALUES (1), (10), (20);
ข้อมูลในตาราง:
+--------+
| UserId |
+--------+
| 1 |
| 10 |
| 20 |
+--------+
ตารางที่ 2: union_Table2
CREATE TABLE union_Table2 (UserId INT);
INSERT INTO union_Table2 VALUES (1), (30), (50);
ข้อมูลในตาราง:
+--------+
| UserId |
+--------+
| 1 |
| 30 |
| 50 |
+--------+
คำสั่งนับจำนวนแถวจาก UNION
เนื่องจาก UNION จะลบค่าซ้ำออกโดยอัตโนมัติ (ค่า 1 ปรากฏในทั้ง 2 ตาราง จะนับเพียงครั้งเดียว)
SELECT COUNT(*) AS UnionCount FROM (
SELECT DISTINCT UserId FROM union_Table1
UNION
SELECT DISTINCT UserId FROM union_Table2
) AS tbl1;
ผลลัพธ์
+------------+
| UnionCount |
+------------+
| 5 |
+------------+
คำอธิบาย: ค่าที่ไม่ซ้ำกันคือ 1, 10, 20, 30, 50 รวม 5 ค่า