연습 - count 함수를 사용하여 이벤트 개수 계산
Kusto 쿼리를 사용하여 데이터 세트를 살펴보고 인사이트를 얻을 수 있습니다. 기상 데이터 세트가 있으며 이 데이터에서 인사이트를 얻기 위해 이벤트를 비교하려고 합니다. 여기서는 특정 영역에서 발생한 특정 유형의 이벤트 수를 확인할 수 있습니다.
count
함수 사용
사용 중인 샘플 데이터베이스에는 2007년 미국의 각 폭풍 이벤트에 대한 항목이 있으며 대략 총 60,000개의 레코드가 있습니다.
이러한 이벤트를 정보 청크로 그룹화하기 위해 summarize
연산자를 사용합니다. summarize
은 여러 행의 값 그룹을 집계하여 단일 요약 값을 형성하는 모든 함수에 사용됩니다. 예를 들어, 다음 쿼리를 사용하여 결과 수를 계산하면 전체 테이블을 요약할 수 있습니다.
집계를 그룹화할 방법을 지정하여 유사한 유형에 속한 이벤트의 그룹으로 데이터를 요약할 수도 있습니다. 예를 들어 상태별로 이벤트를 계산하려면 state
에 따라 summarize
count
에 쿼리를 작성할 수 있습니다. 사실 이전 문장은 실제 쿼리와 매우 유사합니다. 그룹별 행 수를 계산하는 count()
라는 집계 함수를 사용합니다. 이 함수는 count_에서 EventCount로 기본 이름이 바뀐 쿼리 내에서 그룹화된 이벤트의 수를 상태별로 제공하는 새 열을 생성합니다. 새 열의 이름을 바꾸는 것은 쿼리 및 결과를 더 읽기 쉽게 만들기 위해 권장되는 방법입니다.
쿼리를 복사하여 쿼리 편집기에 붙여넣습니다.
StormEvents | summarize EventCount = count() by State | sort by EventCount
쿼리 창 위에 있는 실행 단추를 선택하거나 Shift+Enter를 눌러 쿼리를 실행합니다.
다음 이미지와 같은 결과가 표시됩니다.
dcount()
및 countif()
함수 사용
이전 쿼리는 상태당 이벤트 수를 반환했습니다. 그러나 이벤트를 계산하는 더 정교한 방법이 있습니다.
- 예를 들어, 특정 유형의 이벤트만 계산할 수 있습니다.
countif()
함수는 조건자가 true인 레코드를 계산합니다.countif(DamageCrops > 0)
를 사용하는 쿼리는 작물 피해가 0보다 큰 경우에 해당되는 레코드의 수를 계산합니다. dcount()
함수를 사용하여 고유한 유형의 이벤트 수를 계산할 수도 있습니다.
이러한 count 함수와 함께 summarize
연산자를 사용하여 다음 질문에 대답하는 하나의 쿼리를 구성했습니다.
- 각 상태에서 발생한 폭풍 이벤트는 몇 개인가요?
- 각 상태에서 피해를 야기한 이벤트는 몇 개인가요?
- 각 상태에서 발생한 이벤트의 유형은 몇 가지인가요?
요약 연산자 내의 모든 요소는 쉼표로 구분되며 동일한 열(이 경우 상태)로 그룹화됩니다. summarize
연산자에 이름이 지정되지 않은 열은 삭제됩니다. 다른 열을 포함하려면 데이터가 요약된 열의 이름을 따라 그 이름을 지정합니다.
다음 쿼리를 실행합니다.
StormEvents | summarize count(), EventsWithDamageToCrops = countif(DamageCrops > 0), Count = dcount(EventType) by State | sort by Count
다음 이미지와 같은 결과가 표시됩니다.
결과의 열 이름을 확인합니다. 쿼리의 어떤 부분이 각 열에 해당하나요?
dcount()
함수가 새 열을 만들고 그 이름을 Count로 지정한 것을 볼 수 있습니다. 또한 쿼리에서 이 이름을sort
연산자의 열로 사용했습니다. 텍사스에서 얼마나 많은 종류의 폭풍이 발생했나요?
distinct
연산자 사용
이전 쿼리는 이 데이터에서 다룬 기간 동안 텍사스에서 27가지 유형에 속한 폭풍의 고유 개수를 반환했습니다. 더 드릴다운하여 이 모든 유형에 속한 폭풍의 이름을 확인하는 것은 흥미로울 것입니다. 텍사스에서 각기 다른 유형에 속한 이벤트의 목록을 보려면 특정 열의 고유 값을 나열하는 distinct()
연산자를 사용합니다.
다음 쿼리를 실행합니다.
StormEvents | where State == "TEXAS" | distinct EventType | sort by EventType asc
다음 이미지와 같은 결과가 표시됩니다.
결과 목록을 살펴보세요. 폭풍 유형 중 의외의 이벤트가 있었나요?