#[non_exhaustive]pub enum Operation {
Show 24 variants
Where(Condition),
Select(Vec<SelectExpr>),
Sort {
field: String,
descending: bool,
},
Limit(usize),
Count {
field: Option<String>,
},
Sum {
field: String,
},
Avg {
field: String,
},
Min {
field: String,
},
Max {
field: String,
},
Distinct {
field: String,
},
Median {
field: String,
},
Percentile {
field: String,
p: f64,
},
Stddev {
field: String,
},
Variance {
field: String,
},
Mode {
field: String,
},
GroupConcat {
field: String,
separator: String,
},
GroupBy {
fields: Vec<String>,
having: Option<Condition>,
aggregates: Vec<GroupAggregate>,
},
Unique,
UniqueBy {
field: String,
},
AddField {
name: String,
expr: Expr,
},
MapField {
name: String,
expr: Expr,
},
Explode {
field: String,
},
Unpivot {
value_columns: Vec<String>,
key_name: String,
value_name: String,
},
Pivot {
index_fields: Vec<String>,
columns_field: String,
values_field: String,
},
}Expand description
Pipeline operation applied after path navigation (e.g., | where ..., | sort ...).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Where(Condition)
where 필터링
Select(Vec<SelectExpr>)
select 컬럼 선택: select name, upper(name), round(price, 2)
Sort
sort 정렬: sort age (오름차순) / sort age desc (내림차순)
Limit(usize)
limit 결과 제한: limit 10
Count
count 전체 카운트 / count field 비null 카운트
Sum
sum field 숫자 필드 합계
Avg
avg field 숫자 필드 평균
Min
min field 최솟값
Max
max field 최댓값
Distinct
distinct field 고유값 목록
Median
median field 중앙값
Percentile
percentile field p p번째 백분위수 (p: 0.0~1.0)
Stddev
stddev field 표준편차 (모집단)
Variance
variance field 분산
Mode
mode field 최빈값
GroupConcat
group_concat field separator 그룹 내 문자열 연결
GroupBy
group_by field1, field2 그룹별 집계
집계 연산: group_by category | select category, count, sum_price
Unique
전체 레코드 동일성 기준 중복 제거
UniqueBy
특정 필드 기준 중복 제거 (첫 번째 등장 레코드 유지)
AddField
새 필드 추가 (computed column): --add-field 'total = amount * quantity'
MapField
기존 필드 값 변환: --map 'name = upper(name)'
Explode
배열 필드를 개별 행으로 펼침 (unnest/flatten): --explode tags
Unpivot
Unpivot (wide → long): 지정 컬럼들을 key-value 쌍으로 변환 예: [{name:“a”, jan:100, feb:200}] → [{name:“a”, variable:“jan”, value:100}, {name:“a”, variable:“feb”, value:200}]
Fields
Pivot
Pivot (long → wide): key-value 쌍을 컬럼으로 변환 예: [{name:“a”, month:“jan”, sales:100}, …] → [{name:“a”, jan:100, feb:200}]