我有一个用 PostgreSQL 编写的查询,它返回一条错误消息:
[Err] ERROR:
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 的新手,不知道它要求什么。处理此问题的正确方法是什么?
最佳答案
在子查询上添加一个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
关于sql - FROM 中的子查询必须有一个别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14767209/