Avatar billede labisama Nybegynder
23. marts 2009 - 13:29 Der er 8 kommentarer og
1 løsning

Udtræk top 10 ratings

Hej med jer

Jeg er igang med et rating-system i PHP, og prøver forgæves på at trække top10 ratings ud fra min db tabel.

Tabellen indeholder:
id | download_id | rating

Kort sagt, så ønsker jeg at udtrække top 10 bedst bedømte "download_id"'s.

Jeg har prøvet med følgende uden held:

mysql_query("SELECT COUNT(id) as rate_count, SUM(rating/rate_count) as rate_sum FROM tabel GROUP BY download_id ORDER BY rate_sum LIMIT 10");

HJÆÆÆLP! Tak.
Avatar billede arne_v Ekspert
23. marts 2009 - 13:52 #1
proev:

mysql_query("SELECT download_id,COUNT(id) as rate_count, SUM(rating) as rate_sum,AVG(rating) as rate_avg FROM tabel GROUP BY download_id ORDER BY AVG(rating) LIMIT 10");
Avatar billede labisama Nybegynder
23. marts 2009 - 14:05 #2
Tror at det virker Arne.

Men forstår ikke helt hvor "udregningen" af selve rating/bedømmelsen finder sted. Altså: "samlet_bedømmelse/antal_bedømmelser"

???
Avatar billede arne_v Ekspert
23. marts 2009 - 14:11 #3
Er det ikke det som AVG goer ?
Avatar billede labisama Nybegynder
23. marts 2009 - 14:21 #4
Jo det har du jo ret i. Er jo det samme som at dividere samlet bedømmelse med antallet af bedømmelser.

Svar tak...
Avatar billede arne_v Ekspert
23. marts 2009 - 14:25 #5
kommer her
Avatar billede labisama Nybegynder
23. marts 2009 - 14:34 #6
Hmmm

Jeg har lige kigget lidt nærmere på det.

Umiddelbart så bliver listen alligevel ikke udskrevet helt korrekt.

Det kan muligvis skyldes at i "rating" kan der sagtens forekomme flere med værdien 0. Indeholder rating værdien 0, så skal den ikke indgå i den samlet bedømmelse, men er et udtryk for at det kun er en kommentar som skal udskrives.

Håber du forstår hvad jeg mener?

Kort sagt, så skal rækker med rating = 0 ikke tælles med.
Avatar billede arne_v Ekspert
23. marts 2009 - 14:38 #7
Hvis du havde brugt NULL fremfor 0 saa havde du faaet den funktionalitet "gratis".

Men proev med>

SUM(NULLIF(rating,0))
Avatar billede arne_v Ekspert
23. marts 2009 - 14:39 #8
Jeg mener:

AVG(NULLIF(rating,0))
Avatar billede labisama Nybegynder
23. marts 2009 - 14:46 #9
Lige efter bogen!

Tak... og som altid til arne_v hehe.
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
Computerworld tilbyder specialiserede kurser i database-management

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