Clause Group By

Utilisez la clause GROUP BY pour agréger vos données par une ou plusieurs colonnes. Pour fournir des résultats significatifs de l'agrégation, généralement, l'agrégation de données est combinée à des fonctions d'agrégation sur les colonnes restantes.

Exemples de clauses GROUP BY

L'exemple de requête suivant montre les adresses IP qui ont envoyé plus d'un million d'octets dans tous les flux d'une heure spécifique.

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

Les résultats peuvent ressembler à ceux de la sortie suivante.

-----------------------------------
| 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 |
-----------------------------------

Toutefois, si vous comparez ces informations à une requête non agrégée, la sortie affiche toutes les adresses IP uniques, comme illustré dans la sortie suivante :

------------------------------
| 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 |
------------------------------

Pour afficher le nombre maximal d'événements, utilisez la syntaxe suivante :

SELECT MAX(eventCount) FROM events

Pour afficher le nombre d'événements moyens provenant d'une adresse IP source, utilisez la syntaxe suivante :
SELECT AVG(eventCount), PROTOCOLNAME(protocolid) 
FROM events 
GROUP BY sourceIP

La sortie affiche les résultats suivants :

---------------------------------
| 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 |
---------------------------------