clausola GROUP BY

Utilizzare la clausola GROUP BY per aggregare i dati in base a una o più colonne. Per fornire risultati significativi dell'aggregazione, di solito, l'aggregazione dei dati viene combinata con funzioni di aggregazione sulle colonne rimanenti.

Esempi di clausole GROUP BY

Il seguente esempio di query mostra gli indirizzi IP che hanno inviato più di 1 milione di byte in tutti i flussi in un tempo specifico.

SELECT sourceIP, SUM(sourceBytes) 
FROM flows where sourceBytes > 1000000 
GROUP BY sourceIP

I risultati potrebbero essere simili al seguente output.

-----------------------------------
| sourceIP | SUM_sourceBytes |
-----------------------------------
| 192.0.2.0 | 4282590.0 |
| 10.105.2.10 | 4902509.0 |
| 10.103.70.243 | 2802715.0 |
| 10.103.77.143 | 3313370.0 |
| 10.105.32.29 | 2467183.0 |
| 10.105.96.148 | 8325356.0 |
| 10.103.73.206 | 1629768.0 |
-----------------------------------

Tuttavia, se si confrontano queste informazioni con una query non aggregata, l'output visualizza tutti gli indirizzi IP univoci, come mostrato nel seguente output:

------------------------------
| sourceIP | sourceBytes |
------------------------------
| 192.0.2.0 | 1448629 |
| 10.105.2.10 | 2412426 |
| 10.103.70.243 | 1793095 |
| 10.103.77.143 | 1449148 |
| 10.105.32.29 | 1097523 |
| 10.105.96.148 | 4096834 |
| 192.0.2.0 | 2833961 |
| 10.105.2.10 | 2490083 |
| 10.103.73.206 | 1629768 |
| 10.103.70.243 | 1009620 |
| 10.105.32.29 | 1369660 |
| 10.103.77.143 | 1864222 |
| 10.105.96.148 | 4228522 |
------------------------------

Per visualizzare il numero massimo di eventi, utilizzare la sintassi seguente:

SELECT MAX(eventCount) FROM events

Per visualizzare il numero medio di eventi da un IP di origine, utilizzare la seguente sintassi:
SELECT AVG(eventCount), PROTOCOLNAME(protocolid) 
FROM events 
GROUP BY sourceIP

L'output visualizza i seguenti risultati:

---------------------------------
| sourceIP | protocol |
---------------------------------
| 192.0.2.0 | TCP.tcp.ip |
| 10.105.2.10 | UDP.udp.ip |
| 10.103.70.243 | UDP.udp.ip |
| 10.103.77.143 | UDP.udp.ip |
| 10.105.32.29 | TCP.tcp.ip |
| 10.105.96.148 | TCP.tcp.ip |
| 192.0.2.0 | TCP.tcp.ip |
| 10.105.2.10 | ICMP.icmp.ip |
---------------------------------