Come si utilizza la clausola GROUP BY in una SELECT?

Continuo con le mie domande da neofita, e come si utilizza e cosa fà esattamente la clausola GROUP BY in una query SELECT?

In Corso 3
MySql 18-12-2018 1 Risposta 3427 Visite 0

Risposte ( 1 approvate )

  1. Giorgio Borelli
    0
    18-12-2018 11:56:31
    Rispondi

    La clausola GROUP BY è una funzione di aggregazione, ovvero in una query SELECT serve per raggruppare records aventi gli stessi valori per uno o più campi (colonne).

     

    Viene usata ponendola alla fine di una SELECT e specificando il nome del campo per il quale si vogliono raggruppare i valori, rifacendoci all'esempio di una libreria della tua precedente domanda avremo:

    SELECT authors, COUNT(id) AS num_books FROM books GROUP BY authors;

    in questo modo raccoglierai i records per autore, indicandone nel secondo campo della SELECT il numero di libri scritti, comodo NO?

     

    Un risultato analogo potevi ottenerlo anche con la clausola DISCTINCT, ma ti consiglio di usare la GROUP BY, è più performante ed in più puoi sfruttarla in combinazione con HAVING, un altro comando che ti consente di specificare una condizione da applicare al raggruppamento.

    Supponiamo che tu voglia ritornati i nomi degli autori che abbiano scritto più di 10 libri, allora la tua query diventerebbe:

    SELECT authors, COUNT(id) AS num_books FROM books GROUP BY authors HAVING num_books>10;

     

    Con GROUP BY ed HAVING hai un modo facile e veloce per raggruppare e filtrare il resultset delle tue SELECT.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Paolo Cereschini

Paolo Cereschini

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva