Для приведенного ниже кода я получаю следующее сообщение об ошибке от 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
Любой совет?
distinct
НЕ является функцией.distinct(product3)
абсолютно идентиченdistinct product3
- person a_horse_with_no_name   schedule 08.01.2016productCount
. Имена столбцов объединения (только) определяются первым запросом, поэтому у вас есть столбцыid1
,code1
иproductCount1
, доступные во внешнем запросе. Но на самом деле это должно дать другую ошибку. - person a_horse_with_no_name   schedule 08.01.2016id
иcode
, а ваш внутренний запрос на объединение создает столбцы с именамиname1
иcode1
на основе первого запроса в объединении. Это может быть проблемой.. вы можете попробовать переименовать первые внутренние столбцы запроса вid
иcode
и повторно запустить и посмотреть.. - person vmachan   schedule 08.01.2016