phpbar.de logo

Mailinglisten-Archive

ORDER BY AVG bringt falsches Ergebniss!

ORDER BY AVG bringt falsches Ergebniss!

Michael Bergbauer mysql_(at)_lists.phpcenter.de
Sun, 29 Apr 2001 21:09:02 +0200 (CEST)


On 29-Apr-2001 Michael Schmitz wrote:
> Hallo Liste,
> 
> habe ein Problem mit ORDER BY.
> habe zwei Tabellen,
> 
> Tabelle1 Seiten
> Id
> Name
> Link
> Datum
> usw.
> 
> Enthält Daten uber Seiten usw.
> 
> Tabelle2 Wahl
> Id
> SeitenId
> Vote
> UserId
> usw.
> 
> Enthält Votings der Teilnehmer
> 
> 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.

Wo steht das? Für die Seiten, für die es keine Datensätze in Wahl gibt, ist
Vote NULL (d.h. es kann keine Angabe über den Wert von Wahl gemacht werden, was
ja auch stimmr). AVG(NULL) ist ebenfalls NULL, und NULL wird immer nach oben
sortiert.

Michael

-- 
Michael Bergbauer <michael.bergbauer_(at)_gmx.net>
Use your idle CPU cycles.
See http://www.distributed.net and win $ 1 000.
Visit our mud Geas at geas.franken.de Port 3333

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



php::bar PHP Wiki   -   Listenarchive