webForumDet fria alternativet

Få ut betyg och sortera

Databaser & SQL

2 svar · 247 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Har en tabell i en databas som ser ut så här:

CREATE TABLE community_galleri (
  id int(10) unsigned NOT NULL auto_increment,
  bild_namn varchar(50) default NULL,
  bild varchar(255) default NULL,
  user int(11) default NULL,
  klick int(11) default '0',
  vote1 int(11) NOT NULL default '0',
  vote2 int(11) NOT NULL default '0',
  vote3 int(11) NOT NULL default '0',
  vote4 int(11) NOT NULL default '0',
  vote5 int(11) NOT NULL default '0',
  PRIMARY KEY  (id),
)

Vill nu ifrån denna hämta ut de 20 som har mest snittbetyg. I ex vote1 sparas antal personer som gett just den bilden betyget 1, vote2 sparas det antal som gett bilden betyget 2 o.s.v

Jag vill sen i SQL strängen sortera efter den som har högst betyg överst och lägre ju längre ner man kommer. bild_namn ska skrivas som namn i topplistan.

Nån som kan hjälpa mig med denna. Jag tror man på nåt sätt i SQL strängen måste lägga ihop alla votefälten och dela med nåt men vet inte hur jag ska göra.

Medlem sedan dec. 200012 464 inlägg
#2
select bild_namn,bild,
   (1*vote1+2*vote2+3*vote3+4*vote4+5*vote5)/
   (vote1 + vote2 + vote3 + vote4 + vote5) as snitt
from comunity_galleri
order by snitt desc 
limit 20
Medlem sedan dec. 20011 860 inlägg
#3

Funkar fint. Tack :)

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