2016-04-06 1 views
0

J'essaie de créer une vue avec des données dérivées, mais j'ai du mal à le faire.Accéder à des alias dans une sélection

create or replace view myview as 
SELECT 
    SUM(field1) AS "field1", 
    COUNT(field1) AS "field2", 
    (field1/field2) AS "field3" 
FROM mytable 

Mon problème est que je suis plus familier avec MySQL et pourrait probablement comprendre cela, mais Postgres et je suis encore en train de trébucher sur la syntaxe.

Je voudrais field3 reposer sur les champs 1 et 2. Je devine que je peux faire quelque chose comme ...

(SUM(field1)/COUNT(field1)) AS "field3" 

Mais qui se sent inutile, mon ma requête réelle est plus doit, donc accéder à l'alias serait une idée s'il y a un moyen.

Répondre

0

L'alias n'est pas reconnu au même niveau. Soit vous répétez le code comme vous le suggérez. Ou vous avez besoin de créer une sous-requête.

SELECT (field1/field2) AS "field3" 
FROM (
    SELECT 
     SUM(field1) AS "field1", 
     COUNT(field1) AS "field2",   
    FROM mytable 
    ) T