![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User Newbie
Data di registrazione: Dec 2008
Messaggi: 2
|
Ciao a tutti,
mi trovo a combattere con un risultato inaspettato da una query apparentemente semplice, con un Mysql 5 ed un phpmyadmin su linux. Lanciando questa query da phpmyadmin: SELECT distinct (id_server),bps FROM `earth_banda_giorno` ORDER BY bps DESC LIMIT 0 , 30 Ottengo questo risultato (riporto solo alcune righe): id_server bps 129 44153672 24 44150428 129 43977130 24 43957459 40 43067331 111 42863806 129 34975835 24 34920153 129 23536162 24 23526355 Che è un risultato inaspettato poichè l'id_server viene ripetuto nonostante il distinct. La stranezza viene confermata eseguendo la stessa query senza il campo bps nella select il risultato cambia completamente: SELECT distinct (id_server) FROM `earth_banda_giorno` ORDER BY bps DESC LIMIT 0 , 30 id_server 27 15 40 76 72 140 44 133 97 Mi chiedo, ma dove è finito l'id_server 129? E' quello con il valore bps più alto in assoluto! Sto sbagliando tutto? Io mi ricordavo che il distinct tenesse in considerazione i campi tra le parentesi e solo quelli. Ma a questo punto credo di sbagliarmi e vi chiedo conferma ed un eventuale alternativa. Il mio obiettivo, se non fosse chiaro, è di ottenere i primi n id_server con i bps più alti senza ripetizioni (id_server non è unico). Sarà che sono ancora un po' assonnato, ma mi sto perdendo ![]() Grazie a tutti, Algianbex |
|
Ultima modifica di algianbex : 29-12-08 14:31. |
|
|
|
|
|
|
|
|
#2 (permalink) |
|
Moderatore
|
Prova con DISTINCT tutto in maiuscolo...
EDIT : Credo che il problema sia il fatto che facendo un distinct dell'id e selezionando anche il campo BPS, visto che questi due sono uniti tra di loro, ti restituisca il risultato inaspettato...Forse con Google.... |
|
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
Ultima modifica di ilnetsurfer : 29-12-08 14:45. |
|
|
|
|
|
|
#3 (permalink) |
|
Consiglio Direttivo
|
Ciao algianbex e benvenuto nel Forum GT
![]() La butto giù come ipotesi: dato che a te interessa il valore massimo di bps hai provato a mettere MAX(bps)? O magari giostrarti con il GROUP BY id_server ? ![]() |
|
__________________
Qui, Quo, Qua Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO? Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!! |
|
|
|
|
|
|
#4 (permalink) |
|
User Newbie
Data di registrazione: Dec 2008
Messaggi: 2
|
Ciao, e grazie per le pronte risposte.
Ho provato distinct e DISTINCT, ma non ci sono differenze nei risultati. E ancora non mi spiego perchè non funzioni... Con la funzione max invece pare funzionare, ma va messo un alias, altrimenti l'ordinamento lo fa su bps e non su max(bps). Stamattina non ci ero arrivato... SELECT max( bps ) AS x, id_server FROM `earth_banda_giorno` GROUP BY id_server ORDER BY x DESC bps id_server 44153672 129 44150428 24 43067331 40 42863806 111 12047795 133 11921154 138 10174521 10 9687751 55 9555161 62 6816340 15 Grazie ancora e a presto, Algianbex |
|
|
|
|
|
#5 (permalink) |
|
Consiglio Direttivo
|
Grazie a te di aver postato la soluzione, sarà di certo utile anche ad altri.
![]() ![]() |
|
__________________
Qui, Quo, Qua Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO? Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!! |
|
|
|
|
| Tags: distinct, mysql, php, phpmyadmin, query |
| Strumenti di discussione | |
|
|