J'ai cette requête que j'ai écrite dans PostgreSQL qui renvoie une erreur disant:
[Err] ERREUR:
LIGNE 3: FROM (SELECT DISTINCT (identifiant) AS made_only_recharge
Voici toute la requête:
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'
)
J'ai une requête similaire dans Oracle qui fonctionne très bien. Le seul changement est là où j'ai EXCEPT
dans Oracle je l'ai remplacé par le MINUS
mot clé. Je suis nouveau sur Postgres et je ne sais pas ce qu'il demande. Quelle est la bonne façon de gérer cela?
sql
oracle
postgresql
subquery
roykasa
la source
la source
CALLEDNUMBER = '0130'
.Réponses:
ajouter un
ALIAS
sur la sous-requête,la source
AS pg_sucks
, ce qui signifie "bien, ici vous avez un identifiant redondant, mais vous pourriez en générer en interne par vous-même, putain de postgres!" :)Dans le cas des tables imbriquées, certains SGBD nécessitent d'utiliser un alias comme MySQL et Oracle mais d'autres n'ont pas d'exigence aussi stricte, mais permettent tout de même de les ajouter pour remplacer le résultat de la requête interne.
la source