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