Ilja: wie gehen sub-selects?

Beitrag lesen

yo,

ich bin da am probieren und probieren und es kommt einfach nix gescheites raus... :-(

das wird schon was werden, kopf hoch....

mein erster vorschlag wäre, dein datenbank-desgin zu überdenken. region und bundesstaat könnte man auch ausgliedern. von der stadt kann man die region ableiten und von der region das bundesland. die städte könnten eine eindeutige id bekommen, und somit können sich auch gleiche namen besitzen. aber das ist mehr oder weniger geschmackssache, ich würde es dir aber anraten.

nun zu deinen abfragen. du hast einen falschen ansatz. group by ist dein freund und mehrere abfragen. keep it simple (kis), ich würde nicht versuchen, alles in eine zu packen.

  • die einwohnerzahl der stadt ( bzw. erfasste personen in der stadt)
  • das durchschnittsgehalt der stadt

SELECT COUNT(*) AS Einwohnerzahl AVG(gehalt) AS Gehalt, stadt, region, bundesstaat
FROM tabelle
GROUP BY stadt, region, bundestaat

  • das durchschnittsgehalt der region

SELECT AVG(gehalt) AS Gehalt, region
FROM tabelle
GROUP BY region

  • das durchschnittsgehalt des bundeslandes

SELECT AVG(gehalt) AS Gehalt, bundesstaat
FROM tabelle
GROUP BY bundesstaat

  • das durchschnittsgehalt landesweit

SELECT AVG(gehalt)
FROM tabelle

so, das sind erst einmal die abfragen. nun kan man sicherlich daran basteln, dass alles in eine query zu bekommen. aber muss man das, bzw. ist das eine vorgabe von dir ?

Ilja