SQL Abfrage: nach Aggregat sortieren
Hanno
- php
Hiho
Ich habe folgende Abfrage:
select artikel.artikelname as name, sum(bewertung.sterne), count(bewertung.sterne) from sfb_artikel as artikel, sfb_bewertung as bewertung where artikel.artikelnummer=bewertung.artikelnummer group by bewertung.artikelnummer
Er zeigt mir den Namen eines Artikels an und dazu noch die ANzahl der Bewertungen und die gesamtsumme der vergebenen Sterne. Ich will diese Abfrage nun nach sum(bewertung.sterne) / count(bewertung.sterne) sortieren lassen. Wie geht sowas ? ICh habs schon mit order by probiert aber das klappt irgendwie nicht, er meint
invalid use of group function
Ich hoffe ihr könnt mir helfen
Gruß
Hanno
Halihallo Hanno
Er zeigt mir den Namen eines Artikels an und dazu noch die ANzahl der Bewertungen und die gesamtsumme der vergebenen Sterne. Ich will diese Abfrage nun nach sum(bewertung.sterne) / count(bewertung.sterne) sortieren lassen. Wie geht sowas ? ICh habs schon mit order by probiert aber das klappt irgendwie nicht, er meint
Welche Datenbank? - Das hängt ziemlich stark davon ab...
invalid use of group function
Ach so, MySQL...
Ich hoffe ihr könnt mir helfen
Mal sehen: MySQL hat etwas gegen Agregatsfuntionen in GROUP BY (evtl. in 4 anders? -
Bei einigen dreier Versionen ist dem so). Versuche es über:
SELECT normal_col, SUM(bewertung.sterne) / COUNT(bewertung.sterne) AS fORDBY
FROM ...
WHERE ...
ORDER BY fORDBY
ggf. fORDBY in Quotes (gab bei mir, wenn ich mich recht erinnere einmal Probleme).
BTW. SUM/COUNT des gleichen Attributs ist AVG, erspart Tipparbeit.
Viele Grüsse
Philipp