it-swarm.com.de

Unterabfrage in FROM muss einen Alias ​​haben

Ich habe diese Abfrage, die ich in PostgreSQL geschrieben habe und die folgende Fehlermeldung zurückgibt:

[Err] ERROR:
Zeile 3: FROM (SELECT DISTINCT (identifiant) AS made_only_recharge

Dies ist die ganze Abfrage:

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

Ich habe eine ähnliche Abfrage in Oracle, die gut funktioniert. Die einzige Änderung ist, wo ich EXCEPT in Oracle habe. Ich habe es durch das Schlüsselwort MINUS ersetzt. Ich bin neu bei Postgres und weiß nicht, wonach es verlangt. Wie gehe ich damit richtig um?

71
roykasa

füge ein ALIAS in die Unterabfrage ein,

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