webForumDet fria alternativet
Logga in / Bli medlem

Röstning, snitt och "fair"

Databaser & SQL

6 svar · 218 visningar · startad av Ceeron

Medlem sedan aug. 2000378 inlägg
Trådstart#1

Jag lagrar alla röster i en tabell som heter roster.
Där lagrar jag rostID(raknare), anvID, bildID(vilken bild som det röstas på) samt betyget.

Eftersom jag suger på sql frågar jag hur man räknar ut snittet...

En annan fråga i samband med detta blir ju:
om en bild har fått 1st 10p så kommer ju den att hamna överst öven fast en bild med 300st röster där snittet blir 8 tycker jag ska ligga över....
Hur gör alla andra med detta problem?

Medlem sedan juli 2001203 inlägg
#2
SELECT avg(betyg) AS medel FROM roster GROUP BY bildID ORDER BY avg(betyg)

På den andra frågan vet jag inte hur andra gör... men jag skulle kunna tänka mig nån slags funktion där antalet röster och medelbetyget viktas på något sätt i sorteringen.

Medlem sedan mars 20015 287 inlägg
#3

Du skulle kanske bara ta med de som har fler än tio röster?

Medlem sedan dec. 200012 464 inlägg
#4

Flyttas från ASP

Medlem sedan aug. 2000378 inlägg
#5

funkar inte riktigt....
vill ha ut medelbetyget samt hur många som har röstat...
tabell: roster

rostID, festID, avID, betyg är de berörda fälten...

nån som kan rekomendera nån sql bok lr så? frågar ju ständigt om hur man räknar ut saker direkt i sql frågan...

Medlem sedan mars 20034 471 inlägg
#6

SELECT avg(betyg) AS medel, count(distinct anvid) AS antal
FROM roster GROUP BY bildID ORDER BY antal;

Borde väl funka? :q

Medlem sedan aug. 2000378 inlägg
#7

Funka inte...
Har access

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)