sql abfrage group by?
Sandra
- datenbank
Liebes Forum.
Ich lerne gerade für meine Datenbank-Klausur und verzweifle an einer Abfrage fast...
Also betroffen sind zwei Tabellen. Country und City, wobei beide über Country.Code und City.Country verbunden sind. Beide besitzen die Spalten population und name.
Die Aufgabe ist folgende:
Geben Sie für jedes Land dne prozentualen Anteil der Bevölkerung an, der in Städten über 500000 Einwohner lebt.
Die Anfragen könnt ihr hier über dieses Webinterface testen:
http://dbpraktikum.ifi.informatik.uni-goettingen.de/sql.php
Mein Ansatz geht jetzt von Gruppenbildung aus. Group by city.country müsste ja sinnvoll sein.
Die Abfrage
select city.country,sum(city.population)
from country,city
where country.code=city.country
group by city.country
klappt ausch schon. Leider fehlt hierbei ja noch bei der Summe die Division durch die Gesamteinwohnerzahl des Landes sowie die Einschränkung, dass nur Städte mit mehr als 500000 Einwohnern zu betrachten sind. Die Gesamtbevölkerung ist ja nur durch Country.Population festzustellen.
Wie schaffe ist es jetzt, diese beiden Sachen einzubauen ohne gegen die "Gruppenregeln" zu verst0ßen?
Außerdem wäre es besser, wenn nicht city.country im select ausgegeben würde sondern country.name.
Kann mir dabei jemand helfen?
Ich wäre wahnsinnig dankbar!
Viele liebe Grüße
Sandra
Hat sich erledigt. Ich habe erkannt, wo mein Problem lag...
Guten Abend Sandra!
Auch wenn sich Dein Problem inzwischen erledigt hat, kannst Du Dir, falls es Dich interessiert, ja mal den Tipps&Tricks-Beitrag Datenbanken: Datensätze gruppieren mit SQL von Daniela Koller durchlesen.
MfG
Götz