sqloraclepostgresqlsubquery

subquery in FROM must have an alias


I have this query I have written in PostgreSQL that returns an error saying:

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

This is the whole query:

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

I have a similar query in Oracle that works fine. The only change is where I have EXCEPT in Oracle I have replaced it with the MINUS key word. I am new to Postgres and don't know what it is asking for. What's the correct way of handling this?


Solution

  • Add an ALIAS onto the subquery,

    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