Tenho esta consulta que escrevi em PostgreSQL que retorna um erro dizendo:
[Err] ERROR:
LINE 3: FROM (SELECT DISTINCT (identifiant) AS made_only_recharge
Esta é a consulta completa:
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'
)
Eu tenho uma consulta semelhante no Oracle que funciona bem. A única mudança é onde eu tenho EXCEPT
no Oracle, eu substituí com a MINUS
palavra-chave. Eu sou novo no Postgres e não sei o que ele está pedindo. Qual é a maneira correta de lidar com isso?
sql
oracle
postgresql
subquery
roykasa
fonte
fonte
CALLEDNUMBER = '0130'
.Respostas:
adicione um
ALIAS
na subconsulta,fonte
AS pg_sucks
, significando "bem, aqui você tem algum identificador redundante, mas você poderia gerar algum internamente por você mesmo, maldito postgres!" :)No caso de tabelas aninhadas, alguns SGBD requerem o uso de um alias como MySQL e Oracle, mas outros não têm esse requisito estrito, mas ainda permitem adicioná-los para substituir o resultado da consulta interna.
fonte