.. role:: raw-html-m2r(raw) :format: html adv === 개요 ---- 테이블의 각종 통계 정보를 구하거나 pivoting 할 수 있습니다. 고급시각화 화면에 사용되는 명령어 모음입니다. 타입 ---------------------------------------------------------------------------------------------------- 설명 ---- * 기본적으로 ``| adv operation parameters`` 형태입니다. * ``operation`` 은 고급시각화 다이어그램의 종류와 일치합니다. 총 11가지 타입(\ ``keyword``\ )을 지원합니다. ``operation`` 에 맞춰 ``parameters`` 를 구성해야합니다. * ``LINE | BAR | HISTOGRAM | PIE | HEATMAP | SANKEY`` 의 6가지 타입은 aggregation 함수와 ``SPLITROW``\ , ``SPLITCOL``\ , ``AS`` 문구를 지원합니다. ``SPLITROW``\ 는 가로축 기반으로 aggregation 하며, ``SPLITCOL``\ 은 세로축 기준으로 데이터를 회전하여 aggregation 합니다. ``AS``\ 는 결과 값의 field의 별칭을 줄 수 있습니다. * ``MOTION | SCATTER | SUMMARY | OUTLIER | WORDCLOUD`` 의 5가지 타입은 ``TARGETS`` 문구를 지원합니다. ``TARGETS`` 에 이어지는 컬럼들을 기준으로 ``operation`` 에 따라 aggregation 합니다. operation keyword ^^^^^^^^^^^^^^^^^ .. code-block:: none operation : [ LINE | BAR | HISTOGRAM | PIE | HEATMAP | SANKEY | MOTION | SCATTER | SUMMARY | OUTLIER ] Parameters ---------- LINE | BAR | PIE | HEATMAP ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: none ... | adv (LINE | BAR | PIE | HEATMAP) FUNCTION (AS ALIAS_NAME)?(, FUNCTION (AS ALIAS_NAME)?)* (SPLITROW FIELD_NAME(, FIELD_NAME)*)? (SPLITCOL FIELD_NAME(, FIELD_NAME)*)? (SORTROW order)? (SORTCOL order)? .. list-table:: :header-rows: 1 * - 이름 - 설명 - 필수/옵션 * - ``LINE or BAR or PIE or HEATMAP`` - 차트의 종류를 나타냅니다. - 필수 * - ``FUNCTION`` - \*aggregation 함수의 종류를 나타냅니다. :raw-html-m2r:`
`\ ``,`` 구분자를 기준으로 여러개의 aggregation 함수를 사용 할 수 있습니다.\ :raw-html-m2r:`
`\ ``FUNCTION`` = ``agg_func(FIELD_NAME)`` 형태 입니다. :raw-html-m2r:`
`\ 지원하는 ``FUNCTION``\ 은 아래 표와 같습니다. ``FIELD_NAME``\ 은 field 이름을 뜻합니다. - 필수 * - ``(AS ALIAS_NAME)?`` - ``AS``\ 는 키워드 이며 ``ALIAS_NAME``\ 은 ``FUNCTION`` 의 별칭을 뜻합니다. - 옵션 * - ``(SPLITROW FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITROW``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 그룹핑 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 * - ``(SPLITCOL FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITCOL``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 pivoting 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 * - ``(SORTROW order)?`` - ``SORTROW``\ 는 키워드이며 ``order``\ 은 ``asc/desc``\ 의 값이 들어 갑니다. ``SPLITROW``\ 로 지정된 필드에 대한 Sort 결과를 나타내 줍니다.\ :raw-html-m2r:`
`\ 예 : sortrow desc - 옵션 * - ``(SORTCOL order)?`` - ``SORTCOL``\ 은 키워드이며 ``order``\ 은 ``asc/desc``\ 의 값이 들어 갑니다. ``SPLITCOL``\ 로 지정된 필드의 피벗 결과에 대한 Sort 결과를 나타내 줍니다.\ :raw-html-m2r:`
`\ 예 : sortcol desc - 옵션 * - ``order`` - ``ASC``\ , ``DESC``\ 는 일반적인 정렬을 의미합니다.\ :raw-html-m2r:`
`\ 요일 정렬: ``WEEK ASC``\ , ``WEEK DESC``\ :raw-html-m2r:`
`\ 달 정렬: ``MONTH ASC``\ , ``MONTH DESC``\ :raw-html-m2r:`
`\ 계절 정렬: ``SEASON ASC``\ , ``SEASON DESC`` - 옵션 aggregation functions list .. list-table:: :header-rows: 1 * - Arguments - Description - ETC * - ``avg()`` - 평균 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``count()`` - 카운트를 구합니다. - 모든Type 가능 * - ``first()`` - 첫 번째 값을 구합니다. - 모든Type 가능 * - ``last()`` - 마지막 값을 구합니다. - 모든Type 가능 * - ``max()`` - 제일 큰 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``min()`` - 제일 작은 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``median()`` - 중간 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``sum()`` - 전체 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``stddev()`` - 표준편차 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``countDistinct()`` - 유니크한 값의 갯수를 구합니다. - 모든Type 가능 요일 정렬 아래 이름이나 별명에 대해 우선적으로 정렬합니다. .. list-table:: :header-rows: 1 * - 이름 - 별명 - 설명 * - Monday - MON - 월요일 * - Tuesday - TUE - 화요일 * - Wednesday - WED - 수요일 * - Thursday - THU - 목요일 * - Friday - FRI - 금요일 * - Saturday - SAT - 토요일 * - Sunday - SUN - 일요일 달 정렬 아래 이름이나 별명에 대해 우선적으로 정렬합니다. .. list-table:: :header-rows: 1 * - 이름 - 별명 - 설명 * - 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월 계절 정렬 아래 이름에 대해 우선적으로 정렬합니다. .. list-table:: :header-rows: 1 * - 이름 - 의미 * - spring - 봄 * - summer - 여름 * - fall, autumn - 가을 * - winter - 겨울 HISTOGRAM ^^^^^^^^^ .. code-block:: none ... | adv HISTOGRAM count(FIELD_NAME) (AS ALIAS_NAME)? (SPLITROW FIELD_NAME(, FIELD_NAME)*)? (SPLITCOL FIELD_NAME(, FIELD_NAME)*)? .. list-table:: :header-rows: 1 * - 이름 - 설명 - 필수/옵션 * - ``HISTOGRAM`` - 차트의 종류를 나타냅니다. - 필수 * - ``count(FIELD_NAME)`` - ``HISTOGRAM`` 의 경우 ``count`` 함수만 지원합니다. ``FIELD_NAME`` 은 필드 이름을 뜻하며 ``*`` 인 경우 전체 레코드의 개수를 의미합니다. - 필수 * - ``(AS ALIAS_NAME)?`` - ``AS``\ 는 키워드 이며 ``ALIAS_NAME``\ 은 ``FUNCTION`` 의 별칭을 뜻합니다. - 옵션 * - ``(SPLITROW FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITROW``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 그룹핑 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 * - ``(SPLITCOL FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITCOL``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 pivoting 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 SANKEY ^^^^^^ .. code-block:: none ... | adv SANKEY FUNCTION (HEAD N | TAIL N)? (AS ALIAS_NAME) (SPLITROW FIELD_NAME(, FIELD_NAME)*)? (SPLITCOL FIELD_NAME(, FIELD_NAME)*)? .. list-table:: :header-rows: 1 * - 이름 - 설명 - 필수/옵션 * - ``SANKEY`` - 차트의 종류를 나타냅니다. - 필수 * - ``FUNCTION`` - aggregation 함수의 종류를 나타냅니다. :raw-html-m2r:`
`\ ``,`` 구분자를 기준으로 여러개의 aggregation 함수를 사용 할 수 있습니다.\ :raw-html-m2r:`
`\ ``FUNCTION`` = ``agg_func(FIELD_NAME)`` 형태 입니다. :raw-html-m2r:`
`\ 지원하는 ``FUNCTION``\ 은 아래 표와 같습니다. ``FIELD_NAME``\ 은 field 이름을 뜻합니다. - 필수 * - ``(HEAD N or TAIL N)?`` - SANKEY 의 경우만 적용되는 옵션입니다. HEAD N 은 상위 N 건을 의미합니다. TAIL N 은 하위 N 건을 의미합니다. N 은 양의 정수입니다. 둘 중 하나만 적용가능합니다. - 옵션 * - ``(AS ALIAS_NAME)?`` - ``AS``\ 는 키워드 이며 ``ALIAS_NAME``\ 은 ``FUNCTION`` 의 별칭을 뜻합니다. - 옵션 * - ``(SPLITROW FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITROW``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 그룹핑 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 * - ``(SPLITCOL FIELD_NAME(, FIELD_NAME)*)?`` - ``SPLITCOL``\ 는 키워드 이며 ``FIELD_NAME``\ 는 field 이름을 뜻합니다. 여기에 정의된 field명을 기준으로 pivoting 합니다. 각 ``FIELD_NAME``\ 는 ``,`` 로 구분 됩니다. - 옵션 aggregation functions list .. list-table:: :header-rows: 1 * - Arguments - Description - ETC * - ``avg()`` - 평균 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``count()`` - 카운트를 구합니다. - 모든Type 가능 * - ``first()`` - 첫 번째 값을 구합니다. - 모든Type 가능 * - ``last()`` - 마지막 값을 구합니다. - 모든Type 가능 * - ``max()`` - 제일 큰 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``min()`` - 제일 작은 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``median()`` - 중간 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``sum()`` - 전체 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``stddev()`` - 표준편차 값을 구합니다. - ``TEXT``\ , ``BINARY``\ , ``BOOLEAN`` 불가능 * - ``countDistinct()`` - 유니크한 값의 갯수를 구합니다. - 모든Type 가능 MOTION | SCATTER | SUMMARY | OUTLIER | WORDCLOUD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: none ... | adv (MOTION | SCATTER | SUMMARY | OUTLIER | WORDCLOUD) TARGETS FIELD_NAME(, FIELD_NAME)* (ALGORITHM alg)? .. list-table:: :header-rows: 1 * - 이름 - 설명 - 필수/옵션 * - MOTION|SCATTER|SUMMARY|OUTLIER|WORDCLOUD - 차트의 종류를 나타냅니다. - 필수 * - TARGETS - ``TARGETS fieldA, fieldB, fieldC`` 형태로 ``,`` 구분자를 사용합니다. ``fieldA~C`` 는 field 이름을 뜻합니다. 여기 정의 된 필드를 기준으로 aggregation 합니다. - 필수 * - ALGORITHM - WORDCLOUD 차트에만 해당하는 옵션으로, ALGORITHM 은 예약어 이며, 사용할 수 있는 알고리즘은 현재 3가지 입니다. [mobigen, Mecab, NLTK]. 자세한 내용은 `postagger 문서 `_ 확인. - 옵션 Examples -------- * 'SCORE' 의 합계를 'STUDENT' 별로 그룹화하여 'DATETIME'에 따라 1 일 기준으로 피벗 한 ``LINE | BAR | PIE | HEATMAP`` 예입니다. .. code-block:: none ... | adv (line | bar | pie | heatmap) sum(SCORE) SPLITROW DATETIME SPLITCOL STUDENT * ``SCORE`` 의 평균값 상위 100건에 대해 ``DATETIME``\ , ``REGION``\ , ``STUDENT`` 의 상호관계 흐름을 파악하기 위한 ``sankey`` 예제입니다. .. code-block:: none ... | adv sankey avg(SCORE) HEAD 100 SPLITROW DATETIME,REGION,STUDENT * ``REGION``\ (x축)과 ``STUDENT``\ (y축)에 따른 ``SCORE`` 의 분포를 얻기 위한 ``scatter`` 예제입니다. .. code-block:: none ... | adv scatter TARGETS REGION, STUDENT, SCORE * ``DATETIME`` 의 흐름에 따른 ``SCORE`` 변화량을 얻는 ``motion`` 예제입니다. 그룹핑을 위해 각 ``SCORE`` 의 ``ID``\ , ``TEST_ID``\ , ``STUDENT`` 데이터도 포함합니다. .. code-block:: none ... | adv motion TARGETS DATETIME, ID, TEST_ID, SCORE, STUDENT * ``SCORE`` 필드의 기술통계량(레코드수, 평균, 중간값, 최소값, 최대값, 1Q 사분위수, 3Q 사분위수, \*NA의 수) or 이상치 기술통계량을 얻기 위한 ``summary`` 또는 ``outlier`` 예제입니다. (\*NA : 결측치) .. code-block:: none ... | adv (summary | outlier) TARGETS SCORE