다음과 같은 오류를 반환하는 PostgreSQL로 작성한이 쿼리가 있습니다.
[Err] 오류 :
LINE 3 : FROM (SELECT 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'
)
Oracle에서 잘 작동하는 유사한 쿼리가 있습니다. 유일한 변경 사항은 EXCEPT
Oracle에서 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
답변
중첩 테이블의 경우 일부 DBMS는 MySQL 및 Oracle과 같은 별칭을 사용해야하지만 다른 DBMS는 이러한 엄격한 요구 사항이 없지만 내부 쿼리의 결과를 대체하기 위해 추가 할 수 있습니다.