2011-01-03 25 views
0

Ich versuche, die durchschnittliche Anzahl der Summe einiger Zeilen nach einer WHERE-Klausel zu finden. Hier ist, was ich bisher:MySQL - durchschnittliche Zahl in WHERE finden

SELECT SUM(rating), id 
FROM rating 
WHERE id=$id;"); 

So etwas wie "Summe der Zeilen"/"Anzahl der zurückgegebenen Zeilen"

+0

Sie haben etwas 'string' übrig ... das finale '"); 'sieht in diesem Kontext unerwünscht aus (auch wenn es in Ihrem Programm benötigt wird). –

Antwort

4

AVG(expr): Gibt den Durchschnittswert von expr, zB

SELECT 
    AVG(rating), 
    id 
FROM 
    rating 
WHERE 
    id=$id 
GROUP BY 
    id 

(Edit: vergessen der GROUP BY)

0

Ist es nicht so einfach wie:

tatsächlich
SELECT SUM(rating) AS sum, AVG(rating) AS avg, id 
    FROM rating 
WHERE id = $id 
GROUP BY id; 
0

MySQL hat eine

SELECT AVG(rating) as average_rating, 
id 
FROM rating 
WHERE id=$id 
GROUP BY id 

in durchschnittlich Funktion eingebaut Wenn aus irgendeinem Grund wollte man wirklich die Summe verwenden, Sie

SELECT SUM(rating)/COUNT(rating) as average_rating, 
id 
FROM rating 
WHERE id=$id 
GROUP BY id 

Hoffentlich nicht, obwohl verwenden könnte!