Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di luck
    Registrato dal
    Oct 2004
    Messaggi
    550

    [MYSQL] Banale query su ranking utenti

    Ciao ragazzi,
    avrei bisogno di una query veloce per estrapolare una posizione di un utente all’interno di una classifica.

    Le tabelle sono due: una relativa agli utenti (Tabella1), l’altra relativa a degli oggetti (Tabella2). Ogni oggetto è collegato ad un utente. Ogni utente ha più oggetti. Ogni oggetto ha un punteggio (numero intero).

    Se faccio una query di aggregazione riesco a sommare i punteggi per ogni utente e quindi creare un ranking di utenti

    SELECT Tabella1.ID, Tabella1.UTENTE, Sum(Tabella2.PUNTEGGIO) AS Somma
    FROM Tabella1 INNER JOIN Tabella2 ON Tabella1.ID = Tabella2.ID_UTENTE
    GROUP BY Tabella1.ID1, Tabella1.UTENTE
    ORDER BY Sum(Tabella2.PUNTEGGIO) DESC;

    Però supponiamo che io voglia sapere la posizione assoluta di un determinato utente. Ovvero interrogare il db e farmi dire in che posizione si trova in questo ranking l’utente determinato dall’id con valore x.

    Qualcuno ha idea di come si faccia?

    Grazie
    L.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Guarda chi si rivede.

    Vedi se questo esempio ti è utile.

    codice:
    create table tabella2 (
    id int not null auto_increment primary key,
    id_utente int,
    punteggio int
    ) engine=myisam;
    
    insert into `tabella2` (`id`,`id_utente`,`punteggio`) 
    values 
    (1,1,1),
    (2,1,2),
    (3,2,3),
    (4,2,4),
    (5,3,1),
    (6,3,1),
    (7,4,1),
    (8,5,3),
    (9,6,5),
    (10,7,6);
    
    
    select count(*) + 1 as posizione from 
        (select * from tabella2 where punteggio > 
           (select sum(punteggio) as punteggio from tabella2 
    	where id_utente=3 group by id_utente
    ) order by punteggio desc)as tab

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.