У меня есть этот запрос, который я написал в PostgreSQL, который возвращает ошибку:
[Err] ОШИБКА:
СТРОКА 3: ОТ (ВЫБРАТЬ ОТЛИЧИТЕЛЬНЫЙ (идентификатор) КАК made_only_recharge
Это весь запрос:
SELECT COUNT (made_only_recharge) AS made_only_recharge
FROM (
SELECT DISTINCT (identifiant) AS made_only_recharge
FROM cdr_data
WHERE CALLEDNUMBER = '0130'
EXCEPT
SELECT DISTINCT (identifiant) AS made_only_recharge
FROM cdr_data
WHERE CALLEDNUMBER != '0130'
)
У меня есть аналогичный запрос в Oracle, который отлично работает. Единственное изменение в том, что EXCEPT
в Oracle я заменил его MINUS
ключевым словом. Я новичок в Postgres и не знаю, о чем он просит. Как правильно с этим справиться?
sql
oracle
postgresql
subquery
Ройкаса
источник
источник
CALLEDNUMBER = '0130'
.Ответы:
добавить
ALIAS
в подзапрос,SELECT COUNT(made_only_recharge) AS made_only_recharge FROM ( SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER = '0130' EXCEPT SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER != '0130' ) AS derivedTable -- <<== HERE
источник
AS pg_sucks
, что означает «ну, здесь у вас есть избыточный идентификатор, но вы можете сгенерировать его самостоятельно, черт побери, postgres!» :)В случае вложенных таблиц некоторые СУБД требуют использования псевдонимов, таких как MySQL и Oracle, но другие не имеют такого строгого требования, но все же позволяют добавлять их для замены результата внутреннего запроса.
источник