Announcement

Collapse
No announcement yet.

Geschachtelte Anfragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Geschachtelte Anfragen

    Guten Abend,

    Ich möchte folgende Aufgaben lösen und habe dementsprechend eine Anfrage erstellt.

    a) Zu welchen Ländern gibt es jeweils nur genau drei Städte? Gesucht sind die Ländernamen.
    b) Für welche Länder ist die Summe der Einwohnerzahlen der dazugehörigen Städte grösser als die angegebene Einwohnerzahl des Landes? Gesucht sind Ländername und entsprechende Differenz.
    Sind diese korrekt ? und wie kann ich diese verschachteln ?
    Im Anhang ist die Datenbank zu sehen (Ausschnitt).

    MfG city.jpgcountry.jpglanguage.jpg


    --1a)
    select distinct country.name
    from city join country on city.country = country.code
    group by country.name
    having count(city.country) = 3;


    --1b)
    select distinct country.name as Ländernamen,
    sum(city.population) - max(country.population) as Differenzen
    from city
    join country on city.country = country.code
    group by country.name
    having sum(city.population) > max(country.population);

  • #2
    Hallo,
    Originally posted by eagle-zero View Post
    ...Sind diese korrekt ? und wie kann ich diese verschachteln ?
    Sieht auf den ersten Blick gut aus. Das Distinct kannst du bei der Gruppierung getrost weglassen.
    Was meinst du mit "verschachteln"?

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Guten Abend. Eine Anfrage heißt geschachtelt, wenn sie in der SELECT-, FROM-, oder
      WHERE-, bzw. HAVING-Klausel selbst wieder eine SQL-Anfrage enthält.
      Mittlerweise hab ich mir die Lösung selbst erarbeitet und lautet wie folgt:

      select co.name
      from
      country co
      inner join
      (select country, count(*) as cnt
      from city
      group by country
      having count(*) = 3) ci
      on co.code = ci.country;

      Danke, dass du dich gemeldet hast

      Comment


      • #4
        Bitte zukünftig beachten: Formatierung von SQL in Beiträgen!
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X