Megoszlást hogyan lehet SQL-táblából kihozni?
Országok területét kell összevetni, és ha pl megadok egy X országot akkor hogyan tudom megmutatni, hogy az összes országhoz képest ami a táblázatban van annak az X országnak mekkora a részaránya?
Pl Szerbia területe az X%-a az összes ország területének.
Hát változók használata nélkül a legegyszerűbben inner selecttel.
SELECT Terulet / (SELECT SUM(Terulet) FROM Orszagok)
FROM Orszagok
WHERE OrszagNeve = "Szerbia"
Azthiszem, mint az előző kérdénél, megint csak elméleti érdekessége lesz a se nem praktikus, se nem tömör, se nem időhatékony, de (a csoportostást leszámítva) a tiszta relációalgebrán belül mardó megoldásomnak:
create table cuntry (id int not null auto_increment primary key, name varchar (16) not null , area real not null);
insert into country (name, area) values ('Yugoslavia', 17);
insert into country (name, area) values ('Hungary', 12);
insert into country (name, area) values ('East Germany', 13);
insert into country (name, area) values ('West Germany', 20);
select main.*, sum(aux.area) as whole, round(100 * main.area / sum(aux.area)) as proportion
from country as main
join country as aux
group by main.id
order by proportion;
(Pluszban még sorba raktam területrészesedés szerint, hogy könnyebb legyen ellenőrizni)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!