MySQL Durchschnitt berechnen?

3 Antworten

Zum Berechnen des Durchschnittes gibt es bei SQL die Funktion AVG.

Aus Deinen Angaben lässt sich nichts sinnvolles entnehmen. ich verstehe nicht, was Du genau möchtest. Der Durchschnitt von rate ist nur ein Wert und ergibt im Ergebnis nur eine Zeile:

SELECT AVG(rate) FROM liste

Was ist mit Titel und Inhalt? Wo kommen die her? Sollen wir uns das aus dem Finger saugen?

Die Anweisung hier funktioniert jedenfalls und bringt den Durchschnitt aller rate in einer zeile.

Vielleicht reichtDir das, um den Rest selber weiter zu vervollständigen.

select listid, avg(rate) from rate

group by listid

Da selectest du dir dann noch den rest dazu

avg func...


sky1783 
Fragesteller
 02.02.2019, 13:27

habe ich schon versucht aber dann wird entwerder nichts oder nur eine Zeile ausgegeben und diese mit falschen Werten

0
sky1783 
Fragesteller
 02.02.2019, 13:37
@sky1783
SELECT liste.*, IFNULL(rate.Rate, 0) AS Rate FROM liste
LEFT JOIN (SELECT ListID, AVG(rate.Rate) AS rate.Rate FROM rate GROUP BY liste.ListID
0
verreisterNutzer  02.02.2019, 14:27
@sky1783

Lass die Datenbank sein, was sie ist -- eine Bank für Daten, hole dir die Daten jeweils aus den Tabellen und brechne den Durchschnitt in JS oder PHP

0
derkletterer  02.02.2019, 15:01
@verreisterNutzer

Das ist kein guter Rat. Denn die Datenbank arbeitet wesentlich schneller und liefert dann nur die Daten, die man wirklich haben möchte. Wenn du die erst alle Daten aus der DB ziehst und dann anfängst das per PHP (oder JS) zu berechnen, zu filtern und zu sortieren ist das sehr ineffizient. Bei 1000 Abfragen mag das gehen. Aber je größer die DB wird, desto deutlicher werden auch die Vorteile gleich eine richtige Datenbank-Abfrage zu stellen. Außerdem wird der zu erstellende Code (PHP/JS) wesentlich schlanker / sauberer.

2
sky1783 
Fragesteller
 02.02.2019, 16:34
@verreisterNutzer

das hatte ich ja vorher so aber ich möchte etwas mehr performance

0