Ich habe die Tabelle folgende ratings
, mit Säulen wie:SQL-Abfrage zu den Ergebnissen herauszufiltern basierend auf Zählung
rating_id
, prod_id
, rating
, buyer
, status
, prod_type
[rating_id
einzigartig]
Die rating
Spalte Nimmt Werte von 1
bis 5
und buyer
nimmt nur 2 Werte 0
oder 1
.
Ich möchte eine SQL-Abfrage schreiben, die alle diese Produkte mit ihrer durchschnittlichen Bewertung von Käufern abruft, die 1
sind, so dass die Anzahl der Käufer, die 1
sind, größer als 5 für ein bestimmtes Produkt sind.
Zum Beispiel möchte ich das Ergebnis sein wie:
`prod_id` `avg(rating)` `count(*)`
ksks 3.2 6
kglgkj 4.0 8
jfkfj 2.0 13
ich die folgende Abfrage geschrieben hatte, aber es funktioniert nicht:
SELECT prod_id, avg (Stern), count (*
) WHERE Käufer = 1 UND Anzahl (*
)>5
GROUP BY prod_id;
Ich bekomme den Fehler ungültige Verwendung der Gruppenfunktion.
Jede Hilfe wäre willkommen. Danke
Sie nicht Agregate Funktionen in where-Klausel verwenden können. Wenn Sie das Ergebnis filtern möchten, verwenden Sie die HAVING-Klausel http://www.mysqltutorial.org/mysql-having.aspx – vitalygolub