FROM中的子查询必须具有别名

roy*_*asa 77 sql oracle postgresql subquery

我有这个我在PostgreSQL中编写的查询返回错误说:

[错误]错误:第
3行:FROM(选择DISTINCT(可识别)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'
)
Run Code Online (Sandbox Code Playgroud)

我在Oracle中有一个类似的查询工作正常.唯一的变化是我EXCEPT在Oracle中的位置我用MINUS关键字取代了它.我是Postgres的新手,不知道它的要求.处理这个问题的正确方法是什么?

Joh*_*Woo 105

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
Run Code Online (Sandbox Code Playgroud)

  • @AndrewCassidy这只是不吉利的语法.只要您没有引用该子查询,它的别名是什么并不重要.就个人而言,我正在使用`AS pg_sucks`,意思是"嗯,这里你有一些冗余的标识符,但你可以自己内部产生一些,该死的postgres!" :) (26认同)
  • @JohnWoo感谢你,但为什么需要它(我想我在这里问一个理论问题)? (16认同)
  • @Tregoreg 我的别名总是包含某种咒骂以达到相同的效果。 (2认同)