Я пытаюсь получить общий счет с помощью оператора UNION, но он дает неверный счет.Как получить счет с помощью оператора UNION
select count(*) as companyRatings from (
select count(*) hrs from (
select distinct hrs from companyA
)
union
select count(*) financehrs from (
select distinct finance_hrs from companyB
)
union
select count(*) hrids from (
select regexp_substr(hr_id,'[^/]+',1,3) hrid from companyZ
)
union
select count(*) cities from (
select regexp_substr(city,'[^/]+',1,3) city from companyY
)
);
индивидуальный запрос работает нормально, но общий счет не соответствует.
отдельные результаты здесь: 12 19 3 6 присутствует общее количество: 31
Фактическое общее количество: 40. , так что есть альтернативное решение без оператора UNION?
BTW не делает отдельную таблицу для каждой компании. –
Используйте union all вместо union и выберите sum (hrs) вместо select count в основном запросе. –
@PavelGatnar - для этой работы вся таблица должна иметь тот же тип столбца, который невозможен, так как выводятся его третья и четвертая таблицы. – Utsav