Ik ben bezig mijn statistiekenscript uit te breiden. Leden kunnen hun favoriete genre kiezen dmv een dropdownbox. Ik wil het meest voorkomende genre selecteren en weergeven, hoe doe ik dat?
Het is niet de eerst simon (ook niet de 2e :P), verder klopt jou query niet, want dan krijg je alleen de hoogste scrore, niet welke het meest in de tabel staat.
Jan zijn oplossing lijkt me correct, alleen moest er een GROUP BY bij, niet de ORDER BY vervangen.
Dus:
SELECT genre, COUNT(genre) AS aantal
FROM tabel
GROUP BY aantal
ORDER BY aantal DESC
LIMIT 1;
SELECT
genre,
COUNT(genre) AS aantal
FROM
tabel
GROUP BY
genre
ORDER BY
aantal DESC
LIMIT 1
Volgens mij moet dit hem zijn. GROUP BY is verplicht omdat COUNT een agregate functie is.
Verder gebruik je ORDER BY en LIMIT om er voor te zorgen dat je slechts 1 resultaat krijgt,, namelijk de meest voorkomende.
MAX is alleen bruikbaar wanneer wanneer er in de records een getal staat, bv. 3, 4 en 5, dan zal bij het gebruik van MAX() de waarde 5 als resultaat worden gegeven. Deze functie kijkt dus naar de inhoud van een record, niet hoevaak een bepaalde waarde voorkomt. Dat kun je tellen met COUNT().
Edit: Ik had tussentijds even moeten refreshen, nu heeft W-J dezelfde oplossing al gegeven. Gelukkig zijn we het met elkaar eens. ;)