Etwas 'blödere' MySQL-Abfrage

  • Themenstarter Themenstarter Kristian-
  • Beginndatum Beginndatum
K

Kristian-

Hallo einerseits!
Ich bräuchte mal kurz eure Hilfe und zwar habe ich folgende Tabelle:

id,name,anzahl
1, peter, 23
2, jens, 15
3, uwe, 22
4, peter, 13
5, jens, 12
6, jürgen, 5

Ich möchte jetzt, dass von jedem name ein durchschnittswert bestimmt wird. Dafür müssen natürlich alle "Anzahlen" und die Häufigkeit der Person erstmal bestimmt werden.
Bis jetzt sieht der Spaß so aus:

("SELECT anzahl, COUNT(name), ROUND((anzahl / COUNT(name), 2) AS durchschnitt FROM top_tabelle GROUP BY name ORDER BY durchschnitt DESC LIMIT 0,3");

Anschließend soll der ganze Kram noch absteigend nach den Durchschnittswerten sortiert werden (die "besten" drei). Wo liegt der Fehler? Bin so langsam ratlos...
Danke für eure Bemühungen.

PS: Ich stelle gerade fest, dass das GROUP auch zu spät kommt...hmpf...sehr komisch alles ;-)
 
Du meinst die" Anzahl" ganz zu beginn? Hmm das ist noch nen Rest der alten Testabfrage.
Kann ja getrost raus. Ändert ja aber eh nichts am Ergebnis?

Oder was meinst du jetzt?
 
Es sollte schon was ändern. bei einem GROUP BY sollten alle Felder vom SELECT im GROUP BY vorkommen oder mit mit einer GROUP-Funktion bearbeitet sein.
Versuch auch mal im ORDER BY die Formel einzusetzen und nicht den Alias
 
Hmm, das ändert leider garnichts.
Aber eigentlich müssten zumindest die Befehle stimmen, oder?

Danke schonmal!
 
So einfach wäre es gewesen:

("SELECT name, AVG(anzahl) as durchschnitt from ff_news group by name ORDER BY durchschnitt DESC LIMIT 0,3");

...tolle AVG Funktion.
 

Neue Beiträge

Zurück