Cahide 1 Geschrieben 16. November 2014 Melden Teilen Geschrieben 16. November 2014 (bearbeitet) Guten Abend, habe Verständnisprobleme bei folgender Aufgabenstellung: Select the number of presidents having marriages in which a child was born on an average of minimal once in 5 years (starting with the year the wedding took place in, up to the year the spouse reached age 45). Tabelle: president_marriage spouse_name spouse_age nr_children marriage_year Ich habe die Aufgabe so verstanden, dass ich den SPOUSE_AGE abfragen soll, bei denen die Kinder beginnend mit der Ehe alle 5 Jahren geboren werden. Jetzt weiss ich aber nicht, wie der Syntax für "alle 5 Jahre" lautet. ich hatte mir überlegt, die Spalten MARIAGE_YEAR und NR_CHILDREN zu verknüpfen, aber leider finde ich keinen Ansatz. Bräuchte bitte Hilfe. Kann ich eigentlich sagen, MARIAGE_YEAR + 5 WHERE NR_CHILDREN >=0; ? Mein Ansatz war ja voll daneben, habe schon die Lösung :) bearbeitet 16. November 2014 von Cahide Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 17. November 2014 Melden Teilen Geschrieben 17. November 2014 Dann lass Deine Lösung doch mal sehen :) ... ich denke, das "average" ist da'n wichtiges Stichwort... Zitieren Link zu diesem Kommentar
Cahide 1 Geschrieben 26. November 2014 Autor Melden Teilen Geschrieben 26. November 2014 SELECT count(pres_id) FROM pres_marriage WHERE nr_children >0 AND (45-spouse_age)/nr_children <5; Sry für die Verspätung. Zitieren Link zu diesem Kommentar
Cahide 1 Geschrieben 29. November 2014 Autor Melden Teilen Geschrieben 29. November 2014 ist das denn richtig? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 1. Dezember 2014 Melden Teilen Geschrieben 1. Dezember 2014 Dein SPOUSE_AGE soll das Alter am Hochzeitstag sein? Dann würde ich sagen, wäre Deine Lösung fast richtig ;) Den WHERE-Teil würde ich allerdings eher so sehen: WHERE nr_children >= (45-spouse_age)/5 ...da ja durchschnittlich alle 5 Jahre zwischen Hochzeit und 45 min. ein Kind da sein soll. Zitieren Link zu diesem Kommentar
Cahide 1 Geschrieben 5. Dezember 2014 Autor Melden Teilen Geschrieben 5. Dezember 2014 Ah, ok das klingt natürlich viel logischer und sieht auch schöner aus. Nachdem ich im internet wie b***d gesucht hatte, bin ich zu diesem Ergebnis gekommen und weil die Abfrage die richtige Lösung "ausgespuckt" hatte, wollte ich mich nicht mehr weiter um die Aufgabe kümmern :D Jetzt bin ich aber an einer Aufgabe dran, wo ich Subqueries ohne Join benutzen soll.. :confused: :confused: :confused: Aufgabe: Determine name and years served of the President, who obtained the greatest number of votes ever. TABALLE president: id name birth_year years_served death_age party state_id_born TABELLE election: election_year candidate votes winner_loser_indic Meine Lösungsansatz: SELECT p.name, p.years_served FROM president p WHERE p.name IN (SELECT candidate FROM election GROUP BY candidate, votes HAVING votes = max(votes)); Die Stelle wo ich hängen bleibe ist, dass mit dem "ROW WITH MAX VOTES" ich weiss nicht, wie ich die Bedingung einbinden soll. habe mehreres Angewandt, doch leider ohne Erfolg. Bekomme jedes mal eine Fehlermeldung. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.