Hallo,
ich versuche gerade, aus einer Tabelle von Ländern diejenigen Länder herauszufiltern, deren Anzahl an Einwohnern, die in Städten mit mehr als 100.000 Einwohnern wohnen, größer als 10.000.000 ist. Die Städte sind in einer Tabelle gespeichert, die folgende relevante Attribute besitzt:
LID - Die ID des Landes, in dem die Stadt liegt
Bevoelkerung - Die Gesamtbevölkerung der Stadt
Ich habe das Problem auf diese Weise zu lösen versucht:
SELECT land.name as land, SUM(stadt.bevoelkerung) as stadtbevoelkerung
FROM land, stadt
WHERE stadt.LID = land.LID AND stadt.bevoelkerung > 100000 AND stadtbevoelkerung > 10000000
GROUP BY land.lid;
Das scheiterte jedoch:
ERROR 1054 (42S22): Unknown column 'stadtbevoelkerung' in 'where clause'
Also versuchte ich es mit SUM(stadt.bevoelkerung)
anstelle von stadtbevoelkerung im where-abschnitt, allerdings scheiterte das ebenfalls:
ERROR 1111 (HY000): Invalid use of group function
Lässt sich das Problem überhaupt innerhalb einer Abfrage lösen?
Danke, Humberto