stats

개요

각종 통계 데이터를 구하는 명령어 입니다.

설명

해당 검색 결과에 각종 함수를 적용하여 통계 값을 구합니다. 마치 SQL의 aggregation과 비슷합니다. 만약 각종 통계 값들이 BY 절 없이 쓰인다면, 전체 결과를 aggregation을 하여, 하나의 열만 검색 결과로 출력 될 것입니다. 만약 BY 절에 의하여 그룹핑할 field가 주어진다면, 해당 field의 유니크한 값들의 개수 만큼의 열이 검색 결과로 출력 될 것 입니다.

Examples

  • HR 이라는 필드 이름으로 그룹핑 된 결과 에서, 전체 의 갯수, YEARID 필드의 최대값, 최소값 그리고 평균값을 구합니다.

... | stats count(*), max(YEARID), min(YEARID) BY HR

HR

count(*)

max(YEARID)

min(YEARID)

8

1000

2015

1881

  • 팀별, 시간별 HR의 평균을 구합니다

... | stats avg(HR) by date_group(FTS_PARTITION_TIME, "1H"), TEAMID

dategroup

TEAMID

avg(HR)

20160510180000

CHA

2.91176470588235

20160505180000

BSN

1.08

  • quote 문자를 사용하여 단어가 아닌 필드명도 사용할 수 있습니다.

... | stats avg(HR) as '평균(홈런)', count(HR) as '홈런 개수' by date_group(FTS_PARTITION_TIME, "1H"), TEAMID

dategroup

TEAMID

평균(홈런)

홈런 개수

20160510180000

CHA

2.91176470588235

34

20160505180000

BSN

1.08

125

Parameters

... | stats FUNCTION (AS ALIAS_NAME)?(, FUNCTION (AS ALIAS_NAME)?)* (BY FIELD_NAME (, FIELD_NAME)*)?

이름

설명

필수/옵션

FUNCTION

agg_func(FIELD_NAME)을 뜻합니다. 지원하는 agg_func는 아래 표와 같습니다. FIELD_NAME은 field의 이름입니다.

필수

AS ALIAS_NAME

AS ALIAS_NAME입니다. AS는 키워드 이며 ALIAS_NAME은 변경 할 이름을 뜻합니다.

옵션

BY FIELD_NAME

BY는 키워드를 나타내고, FIELD_NAME는 그룹핑 할 field명을 의미 합니다. 각 field는 ,으로 구분 됩니다.
FIELD_NAMEdate_group(FIELD, UNIT) 함수를 사용 할 수 있습니다. 시간 단위(UNIT, 초/분/시간/일/월/년)로 FIELD를 그룹핑합니다. FIELD는 시간 필드를 의미합니다. UNIT: 기준 시간 단위는 "10y", "1y", "10m", "1m", "10d", "1d", "10H", "1H", "10M", "1M", "10S""1S" 이 될 수 있습니다.

옵션

  • aggregation functions list

Arguments

Description

ETC

avg()

평균 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

count()

카운트를 구합니다.

모든 Type 가능

distinct_count()

유니크한 개별 값의 개수를 구합니다

모든 Type 가능

first()

가장 처음의 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

last()

가장 마지막 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

max()

가장 큰 값을 구합니다

TEXT, BINARY, BOOLEAN 불가능

median()

중간 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

min()

제일 작은 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

stdev()

표준편차 값을 구합니다 (SQL 의 STDEV와 동일).

TEXT, BINARY, BOOLEAN 불가능

stdevp()

표준편차 값을 구합니다 (SQL 의 STDEVP와 동일).

TEXT, BINARY, BOOLEAN 불가능

sum()

전체의 합을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

var()

표본의 분산 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

iqr()

사분위수 범위(IQR) 값을 구합니다.

TEXT, BINARY, BOOLEAN 불가능

Parameters BNF

clauses : funcs
        | funcs BY byclause

byclause : byexpr
        | byclause COMMA byexpr

byexpr : TOKEN
        | func

funcs : funcs COMMA func
        | func

func : TOKEN LPAREN TOKEN RPAREN
    | TOKEN LPAREN TOKEN RPAREN AS TOKEN
    | TOKEN LPAREN TOKEN COMMA TOKEN RPAREN
    | TOKEN LPAREN TOKEN COMMA TOKEN RPAREN AS TOKEN


TOKEN : [^,|^ |^\|^(|^)|^\'|\"]+
COMMA : ,
LPAREN : (
RPAREN : )
BY : (i?)BY