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 по дате отправления: