[sql] FROM의 하위 쿼리에는 별칭이 있어야합니다.

다음과 같은 오류를 반환하는 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에서 잘 작동하는 유사한 쿼리가 있습니다. 유일한 변경 사항은 EXCEPTOracle에서 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는 이러한 엄격한 요구 사항이 없지만 내부 쿼리의 결과를 대체하기 위해 추가 할 수 있습니다.


답변