Mysql
 sql >> Database >  >> RDS >> Mysql

come funzionano groupby e count in sql

Una selezione fornisce in modo relazionale un set di risultati. Se stai raggruppando la tua selezione per un campo, le righe del set di risultati saranno raggruppate per quel campo e ogni riga del set di risultati sarà specifica per il gruppo di risultati.

Ad esempio hai una tabella denominata Animals con i seguenti campi:

Type | Gender | Name

Se stai eseguendo questa query (in MySQL, ad esempio):

 select Type, Gender, Name from Animals where Type <> 'Pig'

otterrai tutti gli animali che non sono "Maiale". Se una riga ha Tipo ='maiale', verrà inclusa nei risultati.

Questa domanda:

select Type, Gender, count(*) from Animals group by Type, Gender

avrà così tante righe:numero di tipi * numero di sessi

Puoi creare condizioni per il tuo gruppo usando la clausola having in MySQL.

Leggi di più qui

La differenza tra count(*) e count(browser) è che il primo restituirà il numero di tutti i record, il secondo restituirà il numero di tutti i record dove not (browser is null) .

Prova a inserire una riga in cui browser is null e poi esegui 1) e 2), questo è il miglior test.