Re: Calculating Percentages

Поиск
Список
Период
Сортировка
От Christoph Haller
Тема Re: Calculating Percentages
Дата
Msg-id 3EC35832.8BA90263@rodos.fzk.de
обсуждение исходный текст
Ответ на Calculating Percentages  (David Siegal <dsiegal@brave.cs.uml.edu>)
Ответы Re: Calculating Percentages
Список pgsql-sql
>
> SELECT nationality, (COUNT(*)*100/total_members) as percentage
> FROM member,
>       (SELECT COUNT(*) as total_members FROM members) tot_mem
> GROUP BY nationality
> ORDER BY nationality
>
You'll have to GROUP BY nationality, total_members

Remember COUNT returns bigint, so percentage is the
result of an integer division. To obtain floating point results use
(COUNT(*)*100.0/total_members)

> > If I were to do:
>
> > SELECT nationality, ((COUNT(*) * 100)/(select count(*) from member))
as
> > percentage FROM member GROUP BY nationality ORDER BY nationality;
>
> > would this repeatedly execute the inner query over and over?
>
> No, it'd do it just once, because the sub-select has no dependency on
> the outer select.  (If the sub-select used any variables from the
outer
> level, then it'd have to be done over at each outer row.)
>
Really nice piece of analyzer.

Regards, Christoph




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

Предыдущее
От: Luis Sousa
Дата:
Сообщение: Re: I need help with a rule to relocate duplicate records
Следующее
От: edouard.boucher@free.fr
Дата:
Сообщение: check with select