Algoritmo classifica SQL

  • Creatore Discussione Creatore Discussione Tommy03
  • Data di inizio Data di inizio

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
21
Vicenza
Salve,
ho 2 tabelle:
userdat(userid,...)
puntate(userid,coin,vincita,quota,vinta,...)

con questa query sono riuscito ad ottenere questo (per ogni utente il numero di puntate, il numero di vittorie, la quota media delle partite vinte, la percentuale di vittorie):
PHP:
SELECT userdat.userid, (SELECT COUNT(*) AS numero FROM puntate WHERE puntate.userid = userdat.userid) AS numero, (SELECT COUNT(*) AS vinte FROM puntate WHERE puntate.userid = userdat.userid AND vinta='si') AS vinte, (SELECT AVG(quota) AS media FROM puntate WHERE puntate.userid = userdat.userid AND vinta='si') AS media, (100 * (SELECT COUNT(*) AS vinte FROM puntate WHERE puntate.userid = userdat.userid AND vinta='si') / (SELECT COUNT(*) AS numero FROM puntate WHERE puntate.userid = userdat.userid)) AS percentuale FROM puntate LEFT JOIN userdat ON userdat.userid = puntate.userid GROUP BY userdat.userid
query.png


Ora mi piacerebbe creare una classifica tra gli utenti, che tenga conto sia del numero di partite giocate, della percentuale di vittorie e della quota media delle vittorie. In particolare, per ogni utente in base a questi tre parametri mi piacerebbe ottenere una valutazione da 0 a 100, che però non sia esattamente con una proporzionalità diretta (per non svantaggiare quelli iscritti da poco), cosa posso fare secondo voi, avete suggerimenti?
 

Discussioni simili