Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781

    elencare i meglio classificati: MIN() GROUP BY

    su db ACCESS

    ho un elenco di utenti e i valori corrispondenti, in sostanza devo estrarre i tre meglio classificati e i tutti relativi valori

    questa è solo una query per cominciare (manca un po di tutto)
    ma se eseguo
    select Nome, min(valore) from tabelle where idgara = 5 GROUP BY Nome ORDER BY valore

    mi chiede di aggiungere "valore" nel GROUP BY, ma così facendo stampa tutti i record


    id idgara tempo valore CodNome Nome
    66 5 12.26.04 2,48 14 utenteDUE
    67 5 12.27.46 2,483 17 utenteQUA
    69 5 12.39.58 2,31 14 utenteDUE
    70 5 12.41.32 2,29 16 utenteTRE
    80 5 14.46.30 1,612 15 utenteUNO
    83 5 15.23.16 1,605 17 utenteQUA
    84 5 15.58.41 1,602 15 utenteUNO
    87 5 17.13.17 1,602 14 utenteDUE
    88 5 17.25.52 1,599 15 utenteUNO
    89 5 17.26.38 1,598 14 utenteDUE
    90 5 17.34.26 1,595 15 utenteUNO
    91 5 17.35.59 1,59 16 utenteTRE
    92 5 17.44.18 1,589 14 utenteDUE
    93 5 18.10.52 1,578 15 utenteUNO
    94 5 18.12.29 1,56 14 utenteDUE
    95 5 18.16.17 1,557 15 utenteUNO
    96 5 18.26.55 1,554 14 utenteDUE
    97 5 18.30.21 1,551 14 utenteDUE

    il risultato estratto dev'essere questo:
    (1) utenteDUE 1,551
    (2) utenteUNO 1,557
    (3) utenteTRE 1,59

    potrebbe verificarsi che due utenti abbiano lo stesso valore
    quindi deve risultare migliore il valore che è stato inserito per primo.
    per questo devo fare riferimento all'ID (e non al tempo, che non è affidabile)

    qualcuno può darmi una mano?
    Ultima modifica di Vincent.Zeno; 13-04-2015 a 22:23

  2. #2
    select * from (select Nome, min(valore) as valore from tabelle where idgara = 5 GROUP BY Nome) ORDER BY valore

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    ecco già va meglio: c'è un elenco coerente

    mi pare sia ancora aperta la questione dei "doppi" (due valori uguali da utenti differenti). o no?
    e per prendere solo i primi tre? (top 3 * non me lo prende)

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    mi correggo (svista mia) top 3 * lo prende ma non prende ORDER BY valore,id

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    MI RI CORREGGO!!!

    faccio altre prove ma ora sembra che funzioni (senza id )

  6. #6
    strano che non prenda la top 3 -- posta la query

  7. #7

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    se riuscissi a postare....

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    top 3 lo prende, non prende la prevalenza del valore doppio se inserito prima,
    se provo ad ordinare per valore,id non gli piace


    s e l e c t top 3 * from (s e l e c t Nome, min(valore) as valore from gare where idgara = 5 GROUP BY Nome) ORDER BY valore

  10. #10
    se ne hai due uguali, top 3 ne estrae 3 o ne estrae 4?

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.