Chỉ cần thực hiện tổng hợp trước khi kết hợp union all
:
select sum(cnt) as total
FROM ((SELECT count(*) as cnt
FROM database1.orders
WHERE number LIKE '11111111111111111'
)
UNION ALL
(SELECT count(*) as cnt
FROM database2.orders
WHERE number LIKE '11111111111111111'
)
) t;
Lưu ý rằng tôi đã thay đổi dấu phân cách chuỗi thành một dấu nháy đơn thay vì dấu nháy kép. Cách tốt là sử dụng dấu ngoặc kép cho các hằng số chuỗi và ngày tháng (và không có gì khác).
Nhân tiện, bạn cũng có thể thực hiện việc này bằng cách sử dụng phép nối:
select o1.cnt1, o2.cnt1, (o1.cnt1 + o2.cnt1) as total
FROM (SELECT count(*) as cnt1
FROM database1.orders
WHERE number LIKE '11111111111111111'
) o1 cross join
(SELECT count(*) as cnt2
FROM database2.orders
WHERE number LIKE '11111111111111111'
) o2;
Điều này giúp việc lấy các số lượng riêng lẻ cho hai cơ sở dữ liệu trở nên dễ dàng hơn.