|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Maksim Kortunov 2:5020/400 18 Apr 2001 18:12:28 To : All Subject : Re: Volumes -> % --------------------------------------------------------------------------------
Могу для Oracl'a написать:
SELECT ROUND (Volume / Cunt.Vol * 100)
FROM (SELECT sum (Volume) Vol from VolumeMetro) Cunt
, VolumeMetro
Если нужна группировка, несложно будет ее прикрутить...
"Vadym Lepetyuk" <lepetyuk@home.com> wrote in message
news:KmSC6.32359$J%5.11509617@news2.rdc2.tx.home.com...
> Привет, народ:
>
> Простая проблема, а как красиво решить, не знаю. :(
> Есть таблица (страна, объем):
> Russia, 20
> USA, 19
> Canada, 11
> А надо получить (страна, процент от суммарного объема):
> Russia, 40%
> USA, 38%
> Canada, 22%
>
> Затычка, которая работает на данный момент (MS Jet 4.0):
> SELECT CountryID, Volume/VolumeSum AS Percentage
> FROM
> ( SELECT MetroID, CountryID, Volume
> FROM VolumeMetro WHERE (MetroID=?)
> ) As QueryVolume
> LEFT JOIN
> ( SELECT MetroID, Sum(Volume) AS VolumeSum
> FROM
> ( SELECT MetroID, CountryID, Volume
> FROM VolumeMetro WHERE (MetroID=?)
> )
> GROUP BY MetroID
> ) As QuerySum
> ON QueryVolume.MetroID=QuerySum.MetroID
>
> Или лучше, то что работает, не трогать? :)
>
> Вадим
>
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/6577efed8522.html, оценка из 5, голосов 10
|