Hallo! Ich bin neu in SQL Ich habe Probleme mit der Verwendung der AVG und Summe Funktion. Ich arbeite mit der obigen Datenbank. Ich brauche den durchschnittlichen Gewinn für jeden Filmstar zu finden, aber nur dann ausgegeben, die nur im Durchschnitt, wenn die Summe ihrer Gewinne ist> 200.
SELECT MovieStar.sname, avg(profit) From MovieStar, Movie
GROUP BY sname
HAVING sum(Movie.profit) > 200
Ich verwende SQL Fiddle, um zu versuchen und dies herauszufinden, aber es scheint, um den Durchschnittswert der GANZE Gewinnspalte zurückzugeben und nicht jeden Schauspieler, aber ich bin mir nicht sicher, was ich falsch machen könnte. Wie kann ich das angehen, so dass ich den Mittelwert jedes einzelnen Akteurs und nicht den Mittelwert der gesamten Gewinnspalte ermitteln kann? Here ist die SQL Fiddle, die ich gemacht habe. Danke im Voraus!
Sie sollten Gruppe auch von dem Schauspieler? Wenn Sie nur laufende Durchschnittswerte verwenden, sehen Sie sich auch die Fensterfunktionen an. –
ist das nicht, was "GROUP BY sname" tut? Gruppiere sie mit dem Namen? – helloworld
Sie haben keine Join-Bedingung, noch ein aktuelles modernes JOIN; also wird jeder Stern mit ** jedem ** Film gepaart. – Uueerdo