web-dev-qa-db-ja.com

FROMのサブクエリにはエイリアスが必要です

私はPostgreSQLで書いたこのクエリを持っていて、次のようなエラーを返します:

[エラー]エラー:
LINE 3:FROM(SELECT DISTINCT(identifiant)AS 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で同様のクエリがあり、正常に動作しています。唯一の変更は、OracleでEXCEPTを使用している場所です。これをMINUSキーワードに置き換えました。私はPostgresを初めて使いますが、それが何を求めているのかわかりません。これを処理する正しい方法は何ですか?

71
roykasa

サブクエリに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
98
John Woo