Visualizzazione risultati 1 fino 7 di 7

Discussione: Query per max valore colonna di record con altre colonne uguali

  1. #1
    duemila2 non è connesso Neofita
    Data registrazione
    24-11-2010
    Messaggi
    4

    Predefinito Query per max valore colonna di record con altre colonne uguali

    Buongiorno a tutti!
    Ho una tabella, chiamata risultati, con le seguenti colonne:

    nome, dimensione, velocità

    nella quale vengono catalogati dei file.
    Tra questi file può capitare che ce ne siano alcuni con lo stesso nome, la stessa dimensione ma velocità diverse.

    Il mio scopo sarebbe quello di avere una query che mi dia come risultato le coppie nome, dimensione distinte e la velocità massima con cui quella coppia si trova nella mia tabella.
    Come posso fare?

    Premetto di aver usato
    SELECT nome,dimensione,MAX(velocità) FROM risultati GROUP BY nome,dimensione
    ma senza successo, nel senso che mi da velocità che a volte non sono effettivamente quelle massime presenti in tabella.

    Grazie per l'aiuto!

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    La query sembra corretta.
    Velocità che campo è ? Int?
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    duemila2 non è connesso Neofita
    Data registrazione
    24-11-2010
    Messaggi
    4

    Predefinito

    Grazie per la risposta!
    Sì è un campo int...sembrava corretta anche a me ma effettivamente qualche volta dà dei problemi!

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Citazione Originalmente inviato da duemila2 Visualizza messaggio
    Grazie per la risposta!
    Sì è un campo int...sembrava corretta anche a me ma effettivamente qualche volta dà dei problemi!
    Cosa significa qualche volta?
    Questi DB non possono andare in errore a random, altrimenti nessuno li potrebbe usare, la max calcola il valore massimo, punto.
    Sei sicuro che non ci sai un problema nel codice?
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    duemila2 non è connesso Neofita
    Data registrazione
    24-11-2010
    Messaggi
    4

    Predefinito

    No infatti non credo sia un problema random nel database ma qualcosa di errato nella query e casualmente qualche volta mi da valori errati. Se la query per fare ciò che dico dovrebbe essere quella, non potrebbe esserci qualche problema nel raggruppamento? Nel senso che in linea teorica dovrebbe funzionare tutto bene, ma in realtà spesso nei nomi ci sono spazi non previsti all'inizio o alla fine che magari creano problemi nel raggruppamento, può essere? Se sì c'è un modo per toglierli?

    EDIT:
    Ho verificato: il problema non sorge nel calcolo della massima velocità a quanto pare ma proprio nel raggruppamento, ovvero dopo la query ho ancora dei risultati "duplicati" con velocità differenti, quando io in realtà ne vorrei uno solo (per ciascuna coppia nome-dimensione) con la velocità massima. Non capisco perchè record apparentemente uguali non vengano raggruppati correttamente...
    Ultima modifica di duemila2 : 10-07-2012 alle ore 11.15.07

  6. #6
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Magari alcuni nomi contengono spazi finali che non vedi
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  7. #7
    duemila2 non è connesso Neofita
    Data registrazione
    24-11-2010
    Messaggi
    4

    Predefinito

    Sì probabilmente era così! Infatti ho risolto con un
    SELECT nome,dimensione,MAX(velocità) FROM risultati GROUP BY LTRIM(RTRIM(nome)),dimensione

    anche se qualcuno rimane ancora spaiato, non so perchè...però in generale sembra funzionare!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •