phpbar.de logo

Mailinglisten-Archive

AW: ORDER BY AVG bringt falsches Ergebniss!

AW: ORDER BY AVG bringt falsches Ergebniss!

Michael Donning mysql_(at)_lists.phpcenter.de
Mon, 30 Apr 2001 08:22:30 +0200


Hallo Michael,

> Von: Michael Schmitz [mailto:michael.schmitz_(at)_impuls-club.de]
> ...
> Wenn ich nun die Ergebnisse so aufbereiten will, dass ich die Seiten Daten
> nach AVG(Vote) sortiert habe, bekomme ich ein falsches Ergebniss.
>
> SELECT avg(Wahl.Vote) AS Schnitt,count(Wahl.Vote) AS
> Anzahl,Seiten.Name,Seiten.Link,Seiten.Datum usw. FROM Seiten LEFT
> JOIN Wahl
> ON Seiten.Id=Wahl.SeitenId GROUP BY Seiten.Id ORDER BY Schnitt z.B. (ASC).
>
> Das Ergebniss sieht immer gleich aus. Alle Datensätze von Seiten
> für die es
> keinen Datensatz in Wahl gibt stehen am Anfang.
> Obwohl der avg Wert 0 sein müsste.
>

Bei 0 Sätzen müßte das Ergebnis von avg(Wahl.Vote) NULL sein. Daher statt
dessen z.B.

IFNULL(avg(Wahl.Vote),0) as Schnitt

Wahlweise kannst Du natürlich auch einen anderen Wert als 0 in der Funktion
angeben um die Sache ans Ende zu sortieren, z.B. 99999

Gruss, Michael Donning

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive