pivot 플러그 인
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
입력 테이블의 한 열에서 출력 테이블의 여러 열로 고유 값을 회전하고 최종 출력에 표시되는 나머지 열 값에 필요한 대로 집계를 수행합니다.
참고 항목
OutputSchema를 지정하지 않으면 플러그 인의 pivot
출력 스키마는 입력 데이터를 기반으로 합니다. 따라서 서로 다른 데이터 입력을 사용하여 플러그 인을 여러 차례 실행하면 다른 출력 스키마가 생성됩니다. 또한 압축이 풀린 열을 참조하는 쿼리가 언제든지 '손상'될 수 있음을 의미합니다. 따라서 OutputSchema 함수를 지정하지 않고 자동화 작업에 이 플러그 인을 사용하지 않는 것이 좋습니다.
구문
T | evaluate pivot(
pivotColumn aggregationFunction] [,
column1 [,
column2 ... ]])
[:
OutputSchema][,
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
pivotColumn | string |
✔️ | 회전할 열입니다. 이 열의 각 고유 값은 출력 테이블의 열이 됩니다. |
aggregationFunction | string |
입력 테이블의 여러 행을 출력 테이블의 단일 행으로 집계하는 데 사용되는 집계 함수입니다. 현재 지원되는 함수: min() , ,max() , take_any() sum() , dcount() , stdev() avg() , variance() make_list() , . make_bag() make_set() count() 기본값은 count() 입니다. |
|
column1, column2, ... | string |
열 이름 또는 열 이름의 쉼표로 구분된 목록입니다. 출력 테이블에는 지정된 각 열당 추가 열이 포함됩니다. 기본값은 피벗된 열과 집계 열 이외의 모든 열입니다. | |
OutputSchema | 플러그 인 출력의 예상 열에 pivot 대한 이름 및 형식입니다.구문: ( ColumnName : ColumnType [, ...]) 예상된 스키마를 지정하면 먼저 실제 쿼리를 실행하여 스키마를 탐색할 필요가 없도록 쿼리 실행이 최적화됩니다. 런타임 스키마가 OutputSchema 스키마와 일치하지 않으면 오류가 발생합니다. |
반품
피벗은 지정된 열(column1, column2, ...)과 피벗 열의 모든 고유 값을 사용하여 회전된 테이블을 반환합니다. 피벗된 열의 각 셀에는 집계 함수 계산이 포함됩니다.
예제
열별 피벗
'AL'로 시작하는 각 EventType 및 상태에 대해 이 상태에서 이 형식의 이벤트 수를 계산합니다.
StormEvents
| project State, EventType
| where State startswith "AL"
| where EventType has "Wind"
| evaluate pivot(State)
출력
EventType | ALABAMA | 알래스카 |
---|---|---|
뇌우를 동반한 바람 | 352 | 1 |
강풍 | 0 | 95 |
극한의 추위/바람의 추위 | 0 | 10 |
Strong Wind | 22 | 0 |
집계 함수가 있는 열별 피벗
'AR'로 시작하는 각 EventType 및 상태에 대해 총 직접 사망자 수를 표시합니다.
StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect))
출력
EventType | ARKANSAS | ARIZONA |
---|---|---|
Heavy Rain | 1 | 0 |
뇌우를 동반한 바람 | 1 | 0 |
Lightning | 0 | 1 |
Flash Flood | 0 | 6 |
Strong Wind | 1 | 0 |
열 | 3 | 0 |
집계 함수와 단일 추가 열이 있는 열로 피벗
결과는 이전 예제와 동일합니다.
StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType)
출력
EventType | ARKANSAS | ARIZONA |
---|---|---|
Heavy Rain | 1 | 0 |
뇌우를 동반한 바람 | 1 | 0 |
Lightning | 0 | 1 |
Flash Flood | 0 | 6 |
Strong Wind | 1 | 0 |
열 | 3 | 0 |
피벗된 열, 집계 함수 및 여러 개의 추가 열 지정
각 이벤트 유형, 원본 및 상태에 대해 직접 사망 횟수를 합산합니다.
StormEvents
| where State startswith "AR"
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType, Source)
출력
EventType | Source | ARKANSAS | ARIZONA |
---|---|---|---|
Heavy Rain | 응급 관리자 | 1 | 0 |
뇌우를 동반한 바람 | 응급 관리자 | 1 | 0 |
Lightning | 신문 | 0 | 1 |
Flash Flood | 학습된 스포터 | 0 | 2 |
Flash Flood | 브로드캐스트 미디어 | 0 | 3 |
Flash Flood | 신문 | 0 | 1 |
Strong Wind | 사법 기관 | 1 | 0 |
열 | 신문 | 3 | 0 |
쿼리 정의 출력 스키마를 사용하여 피벗
다음 예제에서는 StormEvents 테이블에서 특정 열을 선택합니다. 실제 쿼리를 실행하기 전에 다양한 최적화를 평가할 수 있는 명시적 스키마 정의를 사용합니다.
StormEvents
| project State, EventType
| where EventType has "Wind"
| evaluate pivot(State): (EventType:string, ALABAMA:long, ALASKA:long)
출력
EventType | ALABAMA | 알래스카 |
---|---|---|
뇌우를 동반한 바람 | 352 | 1 |
강풍 | 0 | 95 |
해상 뇌우 바람 | 0 | 0 |
Strong Wind | 22 | 0 |
극한의 추위/바람의 추위 | 0 | 10 |
Cold/Wind Chill | 0 | 0 |
해양 강풍 | 0 | 0 |
마린 하이 윈드 | 0 | 0 |