Nie.
Pisałem o czymś takim:
SELECT grupa, SUM(ilosc) AS laczna_ilosc, (SUM(ilosc)/(SELECT SUM(ilosc) FROM tabela)*100) AS udzial FROM tabela
GROUP BY grupa ORDER BY grupa ASC
(o ile dobrze pamiętam to nazywa się zapytanie skorelowane)
Jak widzisz dla każdego rekordu jest liczone
SELECT SUM(ilosc) FROM tabela
Wynik tego jest czynnikiem dzielenia i na końcu to jest grupowane i sumowane. Pewnie optymalizator zapytań poradziłby sobie z tym, ale nie zawsze i nie na każdej bazie.
Zresztą można to zamienić na takie zapytanie (jest równoważne):
SELECT grupa, SUM(ilosc) AS laczna_ilosc, (SUM(ilosc)/razem*100) AS udzial FROM tabela, (SELECT SUM(ilosc) razem FROM tabela) x
GROUP BY grupa ORDER BY grupa ASC
Ale tu już sposób liczenia jest zupełnie inny - polecam zobaczyć plan zapytania (w PgAdmin "F7") dla wszystkich trzech zapytań. Nie sprawdzałem (z ciekawości zaraz to zrobię), ale myślę, że różnica będzie kosmiczna...