pivot¶
개요¶
테이블을 여러 컬럼들을 축으로 회전 및 각종 통계 정보를 행과 열 별로 구할 수 있습니다.
설명¶
SPLITROW
, SPLITCOL
, AS
와 BY
의 문구를 지원하며, SPLITROW
는 가로축 기반으로 그리고 SPLITCOL
은 세로축 기반으로 데이터를 축 기준으로 회전 하거나 aggregation을 할 수 있습니다. AS
는 결과 값의 field의 별칭을 줄 수 있습니다.
Examples¶
batting이라는 모델에서 YEARID
와 PLAYERID
를 각각 행렬로 그룹핑 하여 각 년도에 선수가 가장 많이 친 홈런의 갯수를 구하는 예제 입니다.
... | pivot max(HR) SPLITROW YEARID SPLITCOL PLAYERID
pivot 의 결과를 sort 하고자 할 때, 옵션 SORTROW
, SORTCOL
을 사용할 수 있습니다.
SORTROW
,SORTCOL
의 인자로는asc
및desc
를 사용 할 수 있습니다.예)
SORTCOL asc
orSORTCOL desc
# SPLITCOL 인 DATE 컬럼에 대해 desc 로 정렬
... | pivot count(LEVEL_INT) SPLITCOL DATE SORTCOL desc
# SPLITROW 인 HOST 컬럼에 대해 asc 로 정렬
... | pivot count(LEVEL_INT) SPLITROW HOST SORTROW asc
# SPLITROW 인 HOST 와 SPLITCOL 인 DATE 컬럼에 대해 asc, desc 로 정렬
... | pivot count(LEVEL_INT) SPLITROW HOST SPLITCOL DATE SORTROW asc SORTCOL desc
Parameters¶
... | pivot FUNCTION (ASLIAS)? (, FUNCTION (ASLIAS)?)* (SPLITROW FIELD_NAME(, FIELD_NAME)*)? (SPLITCOL FIELD_NAME)? (FILTER filter_expr)? (COLSIZE N)? ((SORT order)? | (SORTROW order)? (SORTCOL order)?)
이름 |
설명 |
필수/옵션 |
---|---|---|
FUNCTION |
|
필수 |
ASLIAS |
|
옵션 |
SPLITROW |
|
옵션 |
SPLITCOL |
|
옵션 |
FILTER filter_expr |
|
옵션 |
COLSIZE N |
|
옵션 |
SORT order |
삭제될 옵션 |
옵션 |
SORTROW order |
|
옵션 |
SORTCOL order |
|
옵션 |
|
|
옵션 |
*FUNC
의 종류
이름 |
설명 |
지원 타입 |
---|---|---|
|
평균 값을 구합니다. |
|
|
카운트를 구합니다. |
모든Type 가능 |
|
첫 번째 값을 구합니다. |
모든Type 가능 |
|
마지막 값을 구합니다. |
모든Type 가능 |
|
제일 큰 값을 구합니다. |
|
|
제일 작은 값을 구합니다. |
|
|
중간 값을 구합니다. |
|
|
전체 값을 구합니다. |
|
|
표준편차 값을 구합니다. |
|
|
유니크한 값의 갯수를 구합니다. |
모든Type 가능 |
요일 정렬
아래 이름이나 별명에 대해 우선적으로 정렬합니다.
이름 |
별명 |
설명 |
---|---|---|
Monday |
MON |
월요일 |
Tuesday |
TUE |
화요일 |
Wednesday |
WED |
수요일 |
Thursday |
THU |
목요일 |
Friday |
FRI |
금요일 |
Saturday |
SAT |
토요일 |
Sunday |
SUN |
일요일 |
달 정렬
아래 이름이나 별명에 대해 우선적으로 정렬합니다.
이름 |
별명 |
설명 |
---|---|---|
January |
JAN |
1월 |
February |
FEB |
2월 |
March |
MAR |
3월 |
April |
APR |
4월 |
May |
5월 |
|
June |
6월 |
|
July |
7월 |
|
August |
AUG |
8월 |
September |
SEPT |
9월 |
October |
OCT |
10월 |
November |
NOV |
11월 |
December |
DEC |
12월 |
계절 정렬
아래 이름에 대해 우선적으로 정렬합니다.
이름 |
의미 |
---|---|
spring |
봄 |
summer |
여름 |
fall, autumn |
가을 |
winter |
겨울 |
Parameters BNF¶
causes : funcs
| funcs SPLITROW fields
| funcs SPLITCOL fields
| funcs SPLITROW fields SPLITCOL fields
| funcs FILTER tokens
| funcs SPLITROW fields FILTER tokens
| funcs SPLITCOL fields FILTER tokens
| funcs SPLITROW fields SPLITCOL fields FILTER tokens
| funcs COLSIZE NUMBER
| funcs SPLITROW fields COLSIZE NUMBER
| funcs SPLITCOL fields COLSIZE NUMBER
| funcs SPLITROW fields SPLITCOL fields COLSIZE NUMBER
| funcs FILTER tokens COLSIZE NUMBER
| funcs SPLITROW fields FILTER tokens COLSIZE NUMBER
| funcs SPLITCOL fields FILTER tokens COLSIZE NUMBER
| funcs SPLITROW fields SPLITCOL fields FILTER tokens COLSIZE NUMBER
| funcs SORT order
| funcs SPLITROW fields SORT order
| funcs SPLITCOL fields SORT order
| funcs SPLITROW fields SPLITCOL fields SORT order
| funcs FILTER tokens SORT order
| funcs SPLITROW fields FILTER tokens SORT order
| funcs SPLITCOL fields FILTER tokens SORT order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens SORT order
| funcs COLSIZE NUMBER SORT order
| funcs SPLITROW fields COLSIZE NUMBER SORT order
| funcs SPLITCOL fields COLSIZE NUMBER SORT order
| funcs SPLITROW fields SPLITCOL fields COLSIZE NUMBER SORT order
| funcs FILTER tokens COLSIZE NUMBER SORT order
| funcs SPLITROW fields FILTER tokens COLSIZE NUMBER SORT order
| funcs SPLITCOL fields FILTER tokens COLSIZE NUMBER SORT order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens COLSIZE NUMBER SORT order
| funcs SPLITROW fields SORTROW order
| funcs SPLITROW fields SPLITCOL fields SORTROW order
| funcs SPLITROW fields FILTER tokens SORTROW order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens SORTROW order
| funcs SPLITROW fields COLSIZE NUMBER SORTROW order
| funcs SPLITROW fields SPLITCOL fields COLSIZE NUMBER SORTROW order
| funcs SPLITROW fields FILTER tokens COLSIZE NUMBER SORTROW order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens COLSIZE NUMBER SORTROW order
| funcs SPLITCOL fields SORTCOL order
| funcs SPLITROW fields SPLITCOL fields SORTCOL order
| funcs SPLITCOL fields FILTER tokens SORTCOL order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens SORTCOL order
| funcs SPLITCOL fields COLSIZE NUMBER SORTCOL order
| funcs SPLITROW fields SPLITCOL fields COLSIZE NUMBER SORTCOL order
| funcs SPLITCOL fields FILTER tokens COLSIZE NUMBER SORTCOL order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens COLSIZE NUMBER SORTCOL order
| funcs SPLITROW fields SPLITCOL fields SORTROW order SORTCOL order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens SORTROW order SORTCOL order
| funcs SPLITROW fields SPLITCOL fields COLSIZE NUMBER SORTROW order SORTCOL order
| funcs SPLITROW fields SPLITCOL fields FILTER tokens COLSIZE NUMBER SORTROW order SORTCOL order
fields : field
| fields COMMA field
field : TOKEN
| TOKEN AS TOKEN
funcs : funcs COMMA func
| func
func : TOKEN LPAREN TOKEN RPAREN
| TOKEN LPAREN TOKEN RPAREN AS TOKEN
tokens : TOKEN
| tokens TOKEN
| NUMBER
| tokens NUMBER
order : DESC
| ASC
TOKEN : ["..."|'...'|[^ |^,|^+|^-]+]
COMMA : ,
LPAREN : (
RPAREN : )
SPLITROW : (?i)SPLITROW
SPLITCOL : (?i)SPLITCOL
FILTER : (?i)FILTER
AS : (?i)AS
SORT : (?i)SORT
COLSIZE : (?i)COLSIZE
ASC : (?i)ASC
DESC : (?i)DESC
SORTROW : (?i)SORTROW
SORTCOL : (?i)SORTCOL