GROUP BY절

GROUP BY절을 사용하여 하나 이상의 컬럼을 기준으로 데이터를 집계합니다. 의미 있는 집계 결과를 제공하기 위해 일반적으로 데이터 집계가 나머지 컬럼의 집계 함수와 결합됩니다.

GROUP BY절의 예제

다음 조회 예제는 특정 시간의 모든 플로우에서 100만 바이트를 초과하여 전송한 IP 주소를 보여줍니다.

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

결과는 다음 출력과 유사할 수 있습니다.

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

그러나 이 정보를 집계되지 않은 조회와 비교하면 다음 출력과 같이 고유한 모든 IP 주소가 출력에 표시됩니다.

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

최대 이벤트 수를 보려면 다음 구문을 사용하십시오.

SELECT MAX(eventCount) FROM events

소스 IP의 평균 이벤트 수를 보려면 다음 구문을 사용하십시오.
SELECT AVG(eventCount), PROTOCOLNAME(protocolid) 
FROM events 
GROUP BY sourceIP

출력은 다음 결과를 표시합니다.

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