Для кода ниже, я получаю следующее сообщение об ошибке от Oracle:Как просуммировать UNION ALL подзапросов в Oracle
«ORA-00923: FROM ключевое слово не найдено, где ожидается».
SELECT
t1.id,
t1.code,
SUM(t1.productCount)
FROM
(SELECT
id1,
code1,
COUNT(DISTINCT(product)) as productCount1
FROM
table1
GROUP BY
id1,
code1
UNION ALL
SELECT
id2,
code2,
COUNT(DISTINCT(product2)) as productCount2
FROM
table2
GROUP BY
id2,
code2
UNION ALL
SELECT
id3,
code3,
COUNT(DISTINCT(product3)) as productCount3
FROM
table3
GROUP BY
id3,
code3) t1
GROUP BY
t1.id,
t1.code
Любые советы?
Unrelated, но: 'distinct' это *** НЕ *** функция. 'distinct (product3)' абсолютно идентичен 'distinct product3' –
Одна ошибка, которую я вижу: вы получили таблицу (объединение всех) не имеет столбца' productCount'. Имена столбцов объединения (только) определяются первым запросом, поэтому во внешнем запросе доступны столбцы «id1», «code1» и «productCount1». Но это действительно должно привести к другой ошибке. –
Я думаю, что ваш внешний запрос имеет столбцы 'id' и' code', а ваш внутренний запрос объединения создает столбцы с именами 'name1' и' code1' на основе первого запроса в объединении. Это может быть проблемой .. вы можете попробовать переименовать первые внутренние столбцы запроса в 'id' и' code' и повторно запустить и посмотреть .. – vmachan