Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81

    [MYSQL] Query per estrarre i primi 3 valori unici più alti

    Salve a tutti,
    non riesco a risolvere un problema... spero possiate darmi una mano.

    Supponiamo di avere questi dati inseriti nel db:

    ID_Val |HatID |Valutazione |Ruolo
    127 |1084014 |6.5 |6
    344 |29156614 |6 |6
    390 |29156614 |6 |6
    365 |29156614 |6 |6
    357 |29156614 |5.5 |6
    220 |20557621 |5.5 |6
    239 |20557621 |5.5 |6
    382 |27571714 |5.5 |6
    300 |29156614 |5.5 |6

    Da questi vorrei estrarre SOLAMENTE questi risultati:

    ID_Val |HatID |Valutazione |Ruolo
    127 |1084014 |6.5 |6
    344 |29156614 |6 |6
    220 |20557621 |5.5 |6

    Utilizzando un'unica query SQL e non ricorrendo a codice PHP che scandagli il recordset ottenuto.

    Grazie in anticipo per le vostre risposte. Bye!

  2. #2
    "SELECT * FROM tabella GROUP BY Valutazione ORDER BY Valutazione DESC" ?

  3. #3
    Manca il limit.

    codice:
    SELECT * 
    FROM tabella 
    GROUP BY Valutazione 
    ORDER BY Valutazione DESC
    LIMIT 3
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    gia' .... peccato che il GROUP BY prenda il primo valore che trova e non il valore piu' alto....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Originariamente inviato da piero.mac
    gia' .... peccato che il GROUP BY prenda il primo valore che trova e non il valore piu' alto....
    Già... mi sa che il problema è proprio questo. Anche io avevo provato la clausola GROUP BY e ricevevo il primo valore e non il più alto.

  6. #6
    Ma nel tuo esempio di risultati al voto 5.5 non hai messo il valore piu' alto, quindi non pensavo servisse.

  7. #7

  8. #8
    Che meschina figura!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Salve ragazzi,
    scusatemi se non ho risposto ma non ho avuto il tempo di provare le vostre "dritte"... anche se a dire il vero non credo di aver trovato la risposta giusta...

    Volevo dirvi che la lista che ho riportato come esempio è già ordinata con una query "SELECT * FROM tabella ORDER BY Valutazione"

    Grazie ancora una volta

    Alfio

  10. #10
    Originariamente inviato da alfionas
    Salve ragazzi,
    scusatemi se non ho risposto ma non ho avuto il tempo di provare le vostre "dritte"... anche se a dire il vero non credo di aver trovato la risposta giusta...

    Volevo dirvi che la lista che ho riportato come esempio è già ordinata con una query "SELECT * FROM tabella ORDER BY Valutazione"
    nell'esempio che hai portato all'inizio hai svariati record differenziati solo da ID_val, quindi manca la logica con cui vuoi prelevare esattamente un determinato record tra quelli identici

    per ordinare oltre a valutazione dovresti anche usare HatId e ID_val

    ORDER BY Valutazione desc, HatId desc, ID_val asc

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.