Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Sorting del gruppo di un GROUP BY

    Ciao a tutti,
    so che il titolo non è dei migliori ma cerco di spiegarmi.

    Immaginiamo che abbia dei record cosi impostati:

    1 | Soggetto: Ciao | Come stai?
    2 | Soggetto: Ciao | Io bene te?
    3 | peppino | Hai visto la partita ieri?
    4 | peppino | Non l'ho vista.
    ------------------------------------------------

    Io dovrei fare un sorting raggruppato per soggetti in ordine decrescente, ovvero:

    - 4 | peppino | Non l'ho vista
    - 2 | Soggetto: Ciao | Io bene te?

    Il problema è che se io faccio semplicemente un:

    SELECT * FROM `posta` GROUP By soggetto order by idmsg DESC

    lui mi sorta giustamente l'idmsg al di fuori del GROUP BY.

    In pratica prima raggruppa, e di quel gruppo fa un sorting.

    Invece vorrei prima sortare il gruppo, in modo che mi faccia vedere l'ultimo messaggio di quel dato gruppo, e successivamente fare il sorting.

    Mi chiedo, è possibile una cosa simile?

    Grazie mille, spero di essere stato chiaro
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select tab2.* 
    from 
    (select max(idmsg) as idmsg from posta
    group by soggetto) as tab1
    left join posta as tab2 
    on tab1.idmsg = tab2.idmsg
    order by idmsg desc

  3. #3
    Ciao nicola,
    grazie intanto per l'intervento.

    In realtà volevo evitare la join poichè è una tabella con circa 1mln di righe.
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Bukowski
    Ciao nicola,
    grazie intanto per l'intervento.

    In realtà volevo evitare la join poichè è una tabella con circa 1mln di righe.
    Ciao.
    Temo che senza un join non sia possibile.

  5. #5
    Ok,
    allora mi studio qualche alternativa per non dover sortare in questo modo.

    Grazie mille
    Perchè uso Maxthon? | Mi piace questa chat

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Un'alternativa potrebbe essere questa ma non so quanto possa essere più performante

    codice:
    select * from posta where idmsg in (select max(idmsg) from posta group by soggetto) order by idmsg desc

  7. #7
    L'ho provata ma purtroppo è un mattone!

    Fa niente dai, ci abbiamo provato.

    Grazie ancora
    Perchè uso Maxthon? | Mi piace questa chat

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.