Ich habe eine Tabelle mit dem Namen ReviewFact Zählung des Auftretens von bestimmtem Wert zu erhalten, die die folgenden Eigenschaften hat:Wie für jede Zeile SQL
- CategoryID (Primary Key)
- Star_Rating (Primary Key)
- No_of_Reviews
CategoryID bezieht sich auf bestimmte Produkte, bezieht sich STAR_RATING auf eine Stern wird von den Benutzern gegeben No_of_Reviews bezieht sich darauf, wie viele Nutzer diese Bewertung abgegeben haben.
Ich muss eine SQL-Abfrage schreiben, die die Anzahl der 5-Sterne-Bewertungen für jede Kategorie zeigt.
Ich habe mit dem folgenden kommen:
SELECT r.CategoryID, r.NUMBER_OF_REVIEWS
FROM REVIEWFACT r
WHERE r.Stars = 5
ORDER BY r.NUMBER_OF_REVIEWS desc;
Mit diesem ich die Anzahl der Bewertungen für Reihen erhalten, die 5-Sterne-Bewertungen, aber nicht für diejenigen, die nicht tun. Diejenigen, die das nicht tun, sollten den Zählerstand als 0 haben. Wie gehe ich vor, um das zu lösen?
Wenn es die folgenden Zeilen in der Tabelle ist:
CategoryID Star_Rating No_of_Reviews
1 5 10
2 5 4
3 2 9
Die Abfrage
CategoryID No_of_Reviews
1 10
2 4
3 0
Dies funktioniert, aber es mehrere Datensätze enthalten gleiche CategoryID zurückgibt. Wenn CategoryID 6 zwei Sterne Bewertungen, 2 und 5 hat, gibt es eine Zeile für jede Anzahl von 5 Sternen zurück, aber ich möchte nur, dass es die Anzahl für fünf Sterne enthält (wenn es existiert) oder sonst 0 für jede Kategorie ID zurückgeben. – AndyrK
@AndyrK. . . So werden Ihre Beispieldaten aufgebaut. Wenn Sie eine * andere * Frage haben, dann stellen Sie sie als Frage. Wenn Sie diese Frage ändern, werden Sie die Antworten von Personen ungültig machen, die das ursprüngliche beantwortet haben. –