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)*)?
이름 |
설명 |
필수/옵션 |
---|---|---|
|
|
필수 |
|
|
옵션 |
|
|
옵션 |
aggregation functions list
Arguments |
Description |
ETC |
---|---|---|
|
평균 값을 구합니다. |
|
|
카운트를 구합니다. |
모든 Type 가능 |
|
유니크한 개별 값의 개수를 구합니다 |
모든 Type 가능 |
|
가장 처음의 값을 구합니다. |
|
|
가장 마지막 값을 구합니다. |
|
|
가장 큰 값을 구합니다 |
|
|
중간 값을 구합니다. |
|
|
제일 작은 값을 구합니다. |
|
|
표준편차 값을 구합니다 (SQL 의 STDEV와 동일). |
|
|
표준편차 값을 구합니다 (SQL 의 STDEVP와 동일). |
|
|
전체의 합을 구합니다. |
|
|
표본의 분산 값을 구합니다. |
|
|
사분위수 범위(IQR) 값을 구합니다. |
|
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