webForumDet fria alternativet
Logga in / Bli medlem

Topplista, TOP 10, omröstning

Databaser & SQL

1 svar · 209 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Trådstart#1

Om man tänker att besökarna får rösta på bidrag (typ https://www.snyggast.se ).

[votes]
ID
(sessionID -- bara en röst per session)
dteCreated -- skapad
storyID -- den text man röstar på
intVotes -- antalet röster (1-10)

***
Jag hade tänkt mig att topplistan skulle vara aktuell i typ 4 eller 6 veckor.

Hur skriver jag SQL satsen för en sådan fråga??

Jag måste först räkna ut det högsta medelvärdet totalt som en viss post (text) har fått. Sen lägga dom i ordning...

Jag vet inte hur jag ska börja!

Medlem sedan juli 20003 825 inlägg
#2

OK, jag har tänkt lite och det är en lite rörigt ställd fråga, men det är just det som är problemet! Jag vet inte hur jag ska fråga!

Snyggast har gjort det enkelt för sig och har allt lagrad i respektive post.

[favvobild]
ID
...
antalRöster -- int
antalRöstande -- int

***
Med detta upplägget är det jättelätt att räkna ut ett medelvärde. Men jag skulle vilja ha en lite mer sofistikerad variant.

SQL = "SELECT namn, medelvärde FROM [votes] ORDER BY medelvärde WHERE dteCreated <=#" & dateAdd("m", -1, date() ) & "#;"

Alltså, de populäraste posterna från den senaste månaden. Har jag uttryckt mig klarare...??

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