Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
Cahide

SQL Abfragen

Empfohlene Beiträge

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 von Cahide

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×