web-dev-qa-db-fra.com

la sous-requête de FROM doit avoir un alias

J'ai cette requête que j'ai écrite dans PostgreSQL qui renvoie une erreur en disant:

[Err] ERREUR:
LIGNE 3: FROM (SELECT DISTINCT (identifiant) AS made_only_recharge

C'est toute la requête:

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'
)

J'ai une requête similaire dans Oracle qui fonctionne bien. Le seul changement concerne l'endroit où j'ai EXCEPT dans Oracle. Je l'ai remplacé par le MINUS clé Word. Je suis nouveau chez Postgres et je ne sais pas ce que cela demande. Quelle est la bonne façon de gérer cela?

71
roykasa

ajouter un ALIAS sur la sous-requête,

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
98
John Woo