Avatar billede syswatch Novice
04. august 2011 - 20:44 Der er 7 kommentarer og
1 løsning

Finde top 10 ved min 5 bedømmelser

Hejsa...
Jeg har en tabel i en MySQL database hvor der bliver gemt bedømmelser af artikler.
Nu kunne jeg godt tænke mig en top 10 liste over de bedst bedømte artikler, men for at komme i betragtning til listen skal artiklen være bedømt min. 5 gange.

Tabellen ser således ud: id, article_id, user_id, rating, rate_date

Så hvis der er 5 records med samme article_id skal artiklen tælle med i listen, derefter skal gennemsnittet regnes ud.

Hvordan skruer jeg lige en MySQL/PHP sætning sammen til dette ? Er lidt ud over min viden, desværre.
Avatar billede coderdk Praktikant
05. august 2011 - 00:09 #1
Noget i stil med:

SELECT article_id, AVG(rating) AS avgrate, COUNT(article_id) AS amount FROM dintabel ORDER BY avgrate DESC GROUP BY article_id
Avatar billede coderdk Praktikant
05. august 2011 - 00:11 #2
Hov tror nok at ORDER BY skal til sidst:

SELECT article_id, AVG(rating) AS avgrate, COUNT(article_id) AS amount FROM dintabel GROUP BY article_id ORDER BY avgrate DESC

Eller prøv dig frem ;D
Avatar billede vagnk Juniormester
05. august 2011 - 05:10 #3
coderdk's forslag
SELECT article_id, AVG(rating) AS avgrate, COUNT(article_id) AS amount FROM dintabel GROUP BY article_id ORDER BY avgrate DESC
med tilføjelsen LIMIT 0, 10; - så skulle den være der.
Avatar billede showsource Seniormester
05. august 2011 - 06:48 #4
Mon ikke HAVING skal med?

SELECT article_id, AVG(rating) AS avgrate, COUNT(article_id) AS amount FROM dintabel GROUP BY article_id ORDER BY avgrate DESC HAVING amount > 4
Avatar billede syswatch Novice
05. august 2011 - 07:50 #5
Coderdk, du havde næsten den rigtige løsning... hvis jeg lige koblede showsources løsning på, så virkede det helt perfekt.
Tak til jer begge...

Smider i lige svar, så vi kan lukke den...

Point deling ?
Avatar billede showsource Seniormester
05. august 2011 - 09:14 #6
Jeg springer over
Avatar billede coderdk Praktikant
05. august 2011 - 09:53 #7
ok :)
Avatar billede vagnk Juniormester
05. august 2011 - 14:14 #8
Springer over. Held og lykke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester