Re: 2nd attempt: Window function SQL - can't quite figure it.

Поиск
Список
Период
Сортировка
От Pál Teleki
Тема Re: 2nd attempt: Window function SQL - can't quite figure it.
Дата
Msg-id CAMLfE0OfBFqtEA1g9JDWNMFdb8Rv_xdMLEwkUsn9sK9=HW+hEw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: 2nd attempt: Window function SQL - can't quite figure it.  ("David G. Johnston" <david.g.johnston@gmail.com>)
Ответы Re: 2nd attempt: Window function SQL - can't quite figure it.  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-novice
Thanks again - that works nicely.

One final question follows on from my original question.

This query (using "traditional" SQL) works:

SELECT t1.dep, t1.man,
       t1.deptot,
       t1.stot_per_man,
       ROUND((t1.stot_per_man/t1.deptot * 100), 2) AS "%age sales per manager"
FROM
(
  SELECT s1.department AS dep, s1.salesmanager AS man,
  (SELECT sum(s2.amount) FROM sales s2 WHERE s2.department =
s1.department) AS deptot,
  (SELECT sum(s3.amount) FROM sales s3 WHERE s3.salesmanager =
s1.salesmanager) AS stot_per_man
   -- stot_per_man/deptot AS "%age sales per manager"
  FROM sales s1
  GROUP BY s1.department, s1.salesmanager
) AS t1


Note the commented line -- stot_per_man/deptot AS "%age sales per manager"

If I uncomment it, I get "ERROR:  column "stot_per_man" does not exist"

Now, why can't I use deptot and stot_per_man aliases in  my query? It would
greatly simplify the SQL by removing the need for a subquery (or inline view
as Oracle calls them).

Thanks again,


Pál.



> David J.

--

--

Pál Teleki


В списке pgsql-novice по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: 2nd attempt: Window function SQL - can't quite figure it.
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: 2nd attempt: Window function SQL - can't quite figure it.