2017-11-29 1 views
0

Hallo ich mit der folgenden Übung habe Schwierigkeiten:SQL Durchschnitt der durchschnittlichen

Den Unterschied zwischen der durchschnittlichen Bewertung von Artikeln vor 1950 und der durchschnittlichen Bewertung von Artikeln veröffentlicht freigegeben, nachdem 1950. (Achten Sie auf die durchschnittliche Bewertung berechnen für jeden Artikel, dann wird der Mittelwert dieser Mittelwerte für Artikel vor 1950 und Artikel nach. Sie berechnen nicht nur die gesamte durchschnittliche Bewertung vor und nach 1950.)

SELECT AVG(RatingBefore + RatingAfter) AS Difference FROM Rating 
WHERE AVG(star) AND year >1950 AS AverageAfter 
AND AVG(star) AND year<1950 AS AverageAfter 
GROUP BY title 

Ist dieser Code etwas, das funktionieren würde? Ich bin neu in SQL, also bitte sei nett, wenn es ein Durcheinander ist. :) (Es wird nicht angegeben, welche Art von SQL in der Übung, die ich erhalten haben.)

+0

"WHERE AVG (Stern) UND Jahr> 1950 AS AverageAfter UND AVG (Stern) UND Jahr <1950 AS AverageAfter" ist völlig falsch. In der WHERE-Bedingung geben Sie die Bedingungen für jede Zeile an. Es ist nicht möglich, eine Zeile zu haben, die älter und jünger als 1950 ist. Mit CASE WHEN können Sie sie umbenennen. Noch nicht klar, müssen Sie die zwei verschiedenen avg oder den Unterschied von ihnen als ein Ergebnis zeigen? – MiloBellano

+0

Aww .. Ok, danke, dass du mich informiert hast. :) Ich habe w3schools als meine Hauptressource benutzt, aber die Komplexität der Beispiele dort ist ziemlich gering. –

+0

@MiloBellano Nur der Unterschied von ihnen als ein Ergebnis –

Antwort

1

Dies ist eine Vermutung, weil wir keine andere Informationen (sampel Daten, Tabellenstruktur, etc.) haben

SELECT 
    AVG(CASE year >1950 THEN star END) - AVG(CASE year < 1950 THEN star END), 
    AVG(star) 
FROM Rating 
GROUP BY title 

Dies ist eine bedingte Aggregation, um die Mittelwerte von vor 1950 und nach 1950 in der gleichen Abfrage wie der Gesamtdurchschnitt zu berechnen.

+0

Die Datenstruktur ist einfach: 1 Tabelle "Ranking", 4 Spalten "Id, Titel, Jahr und Stern (1 bis 5). –

Verwandte Themen