|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2004
Città: Vicenza
Messaggi: 123
|
[MySQL] Query con ORDER BY e GROUP BY
Ciao ragazzi, sono di fronte ad una query in cui devo raggruppare alcune linee quindi ordinarle.
Il problema è questo. Faccio un esempio. id "1" titolo "gianni" categoria "mobili" id "2" titolo "pippo" categoria "elettrodomestici" id "3" titolo "gianni" categoria "mobili" se faccio group by titolo succede che le linee 1 e 3 si uniscono e l'id si sovrappone. Questo poi mi fa perdere l'ordine naturale quindi con ORDER BY id la linea 1 verrà dopo la linea 2. Non so se sono stato chiaro, spero di si. Il mio caso era troppo complesso da riportare quindi ho fatto un esempio. Come posso evitare questo fatto? C'è un modo?
__________________
Love, let me sleep tonight on your couch And remember the smell of the fabric of your simple city dress [Jeff Buckley - So real] |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
|
se la select è esattamente così con quest'ordine dubito che raggruppi qualcosa...
se vuoi ordinarle per id non puoi semplicemente dire "ORDER BY ID ASC" se crescente o "ORDER BY ID DESC" per decrescente? anche se il tuo esempio non mi è molto chiaro...
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons Un rutto vale più di mille parole. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2004
Città: Vicenza
Messaggi: 123
|
Io faccio order by id desc però prima di farlo devo raggruppare e questo mi sovrascrive gli id.
Così perdo l'ordine originale. Io cerco il metodo per ragruppare che mi permetta di scegliere quale id finale risulterà dal raggruppamento. Sono stato chiaro adesso?
__________________
Love, let me sleep tonight on your couch And remember the smell of the fabric of your simple city dress [Jeff Buckley - So real] |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
|
ok credo di aver capito
ma credo che non sia possibile: se raggruppi perdi l'id, a meno di non assegnarne uno nuovo...
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons Un rutto vale più di mille parole. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 115
|
Codice:
SELECT Min(ID) As PrimoID, Titolo, ...
FROM Tabella
WHERE ....
GROUP BY Titolo
ORDER BY PrimoID
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Apr 2004
Città: Vicenza
Messaggi: 123
|
Quote:
Sei un grande!
__________________
Love, let me sleep tonight on your couch And remember the smell of the fabric of your simple city dress [Jeff Buckley - So real] |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 115
|
Di nulla, ma non devi ringraziarmi; in realtà mi ero iscritto per chiedere informazioni nella sezione Diamonds; passando ho visto la tua domanda e ho risposto al volo.
Per aggiungere informazioni al mio post precedente, puoi usare funzioni diverse da min a seconda delle tue esigenze, come Max() -autoesplicativa-, First() -restituisce il primo elemento incontrato del gruppo, senza cura dell'ordinamento- etc. etc. Ulteriori informazioni le puoi trovare su google cercando "funzioni aggregazione sql" Saluti |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Apr 2004
Città: Vicenza
Messaggi: 123
|
Si infatti alla fine ho usato max(id).
Grazie ancora.
__________________
Love, let me sleep tonight on your couch And remember the smell of the fabric of your simple city dress [Jeff Buckley - So real] |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:09.



















