2017-03-02 1 views
0

AVG für 2 Spalten erhalten möchten, aber nur Ergebnisse mit einem Durchschnitt größer als 4 anzeigen möchten. So weit habe ichMöchten AVG für 2 Spalten erhalten, aber Ergebnisse mit einem Durchschnitt größer als 2 anzeigen

Select Category, 
(avg (Nomins) + avg (awards))/2 as "Avg Awards+Nomins" From DvdMovie 
Group By Category 
Having (avg(Nomins) + avg(awards))/2 > 4 

Aus irgendeinem Grund bekomme ich nicht die richtigen Durchschnittswerte, wenn ich es manuell überprüfe.

Wenn dies hilft, ist die Frage, die ich versuche zu lösen.

Zeigen Sie für jede Filmkategorie die durchschnittliche Anzahl der Auszeichnungen und Nominierungen für Filme in dieser Kategorie an. Nur Kategorien anzeigen, in denen der Durchschnitt 4 oder mehr beträgt.

EDIT: Sample Data 
1 Movie 1       Action  70.00 2015 3 5 
2 Movie 2       Drama  65.00 2010 3 3 
3 Movie 3       Mystery  95.00 2016 5 6 
4 Movie 4       Horror  79.00 1975 3 4 
5 Movie 5       Sport  74.00 2005 2 2 
6 Movie 6       Comedy  81.00 2005 1 2 
7 Movie 7       Fantasy  19.00 2008 2 12 
8 Movie 8       Comedy  41.00 2004 4 9 
9 Movie 9       Horror  31.00 2009 1 1 
10 Movie 10      Fantasy  41.00 2009 0 2 
11 Movie 11      Horror  12.00 2009 1 2 
+1

ich entfernte die externen Datenbank-Tags. Bitte markieren Sie die, die Sie tatsächlich verwenden. –

Antwort

0

ändern having Klausel von Having (avg(Nomins) + avg(awards))/2 > 4 zu Having (avg(Nomins) + avg(awards))/2 >=4 und lassen Sie uns wissen.

EDIT: Darüber hinaus. Es könnte Probleme mit der Kürzung (aufgrund der Division durch Ganzzahl) geben: Ich würde vorschlagen,

SELECT 
    Category, 
    (AVG(CONVERT(float, nomins + awards)))/2.0 
    as "Avg Awards+Nomins" 
FROM dvdmovie 
GROUP BY Category 
HAVING (AVG(CONVERT(float, nomins + awards))) >= 8 
+0

Hallo, ich habe das versucht und ich bekomme immer noch nicht die richtige Antwort. Ich denke, es gibt ein Problem damit, wie ich die avg-Klausel geschrieben habe, weil ich, wenn ich den Durchschnitt auf einem Rechner manuell berechne, eine Antwort von 8 bekomme, aber wenn ich das Skript ausführe, bekomme ich 3. – Jstn30

+0

Ich habe mein aktualisiert antwort, wenn das problem weiterhin besteht bitte posten sie einige beispieldaten. –

+0

Ich habe die Daten hinzugefügt, die ich verwende. Der Durchschnitt für Fantasy-Filme sollte 8 sein, aber wenn ich ihn laufe, bekomme ich 4 für Fantasy-Filme. Ich habe versucht, was Sie vorgeschlagen haben und immer noch nicht die richtige Antwort bekommen. – Jstn30

Verwandte Themen