[PHP/MYSQL] Kleines Problem mit Sum()

ryk

BAZINGA!
ID: 66395
L
4 Mai 2006
3.313
115
Hallo,

ich lese aus der Datenbank mit Sum() die Summe einer Spalte aus und addiere sie danach mit der Anzahl der Zeilen. Ich möchte dadurch den Durchschnitt ermitteltn. Klappt auch so weit. Nur sind die Daten in der Spalte als Kommazahlen angegeben (z.B. 1,7 und 2,7). Aber anstatt der Durchschnitt von 2,2 ausgegeben wird, erscheint nur ne 2.

Ist es nun so, dass Sum() nur mit der angelsächsischen Form, den ., umgehen kann und nicht mit , oder macht Sum() allgemein nur Ganzzahlen?

Wäre dankbar, wenn mir jemand helfen könnte.

Gürße
ryk
 
was für ein Typ ist das Feld denn?? scheinbar ja ein char oder?? Also sum auf ein Double liefert auch ein double zurück. Das Problem wird an dem komma liegen.
 
nimm doch die funktion für den durschnitt, musste mal in der mysql funktionsübersicht nachsehen, sicher avg oder sowas.

mysql bietet ja von haus aus ne menge funktionen, so kann man schon über einfache select-anweisungen das gewünschte ergebniss erreichen. guter nebeneffekt dabei: es geht schneller.

stumpi
 
er versucht scheinbar nen sum auf nen text-feld (varchar ?) anzuwenden, sonst würde ihn ja nicht interessieren ob da nen komma oder punkt steht.
 
Wenn die Spalte vom Typ INTEGER ist bzw als INTEGER interpretiert wird ( und die Anzahl Zeilen sowieso ) ,dann wird auch das Ergebnis der Division als INTEGER ausgegeben -> keine Nachkommastellen. Wandle doch mal die Summe in ein DECIMAL ( x,2 ) Feld um.

z.B.

SELECT DECIMAL ( SUM(spalte) , 15, 2 ) / COUNT(*) as Durchschnitt
FROM ...


wobei ich vermute, Du dividierst durch die Anzahl der Zeilen, und addierst nicht :)