geostats
geostats 명령어 문법 및 연동규격 설명서 입니다.
개요
이 명령어는 위, 경도 데이터를 포함한 두 개의 필드를 기반으로 그룹(지정 지역 클러스터)별 통계정보를 제공합니다.
타입
설명
해당하는 두 개의 필드에 포함된 위, 경도를 십진수 도(DD)로 나타내는(ex 41.40338, 2.17403) 지역들을 사용자의 기준으로 그룹짓고 이에대한 통계(count, sum, avg, min, max 등)결과를 새로운 필드로 생성하여 제공합니다. 생성된 필드는 명령어 순서에 맞게 기존 테이블의 마지막에 위치하게 됩니다.
Examples
검색대상이되는 데이터가 다음과 같이 존재합니다.
UPDATE_TIME |
SYS_OUT |
OUT_TYPE |
LAT |
LON |
---|---|---|---|---|
2018-03-08 1:00 |
a |
37.5 |
127.5 |
107 |
2018-03-08 1:00 |
b |
37 |
126.5 |
145 |
2018-03-08 1:00 |
c |
38.5 |
126 |
797 |
2018-03-08 1:00 |
a |
38 |
128 |
456 |
2018-03-08 1:00 |
d |
36.5 |
127 |
41 |
2018-03-08 1:00 |
c |
37 |
126 |
179 |
LAT, LON 필드값을 이용해 클러스터링 및 COUNT집계함수 실행 결과를 테이블에 추가하는 예제 입니다.
... | geostats lat lon count by OUT_TYPE
명령어 이후 테이블 (클러스터링 및 count 필드 추가)
cluster_id |
latitude |
longitude |
OUT_TYPE |
count |
---|---|---|---|---|
0_6_5 |
37.75 |
127.75 |
a |
2 |
0_6_5 |
37.75 |
127.75 |
c |
2 |
0_6_6 |
37 |
126.5 |
b |
1 |
0_6_6 |
36.5 |
127 |
d |
1 |
LAT, LON 필드값을 이용해 클러스터링 및 SUM 집계함수 실행 결과를 테이블에 추가하는 예제 입니다.
... | geostats lat lon sum(SYS_OUT) by OUT_TYPE
명령어 이후 테이블 (클러스터링 및 sum 필드 추가)
cluster_id |
latitude |
longitude |
OUT_TYPE |
sum(SYS_OUT) |
---|---|---|---|---|
0_6_5 |
37.75 |
127.75 |
a |
563 |
0_6_5 |
37.75 |
127.75 |
c |
976 |
0_6_6 |
36.5 |
127 |
d |
41 |
LAT, LON 필드값을 이용해 클러스터링 및 COUNT, SUM 집계함수 실행 결과를 테이블에 추가하는 예제 입니다.
... | geostats lat lon count,sum(SYS_OUT) by OUT_TYPE
명령어 이후 테이블 (클러스터링 및 count, sum 필드 추가)
cluster_id |
latitude |
longitude |
OUT_TYPE |
count |
sum(SYS_OUT) |
---|---|---|---|---|---|
0_6_5 |
37.75 |
127.75 |
a |
2 |
563 |
0_6_5 |
37.75 |
127.75 |
c |
2 |
976 |
0_6_6 |
37 |
126.5 |
b |
1 |
145 |
0_6_6 |
36.5 |
127 |
d |
1 |
41 |
LAT, LON 필드값을 이용해 클러스터링 및 COUNT집계함수 실행 결과를 테이블에 추가하는 예제 입니다.( groub by 절 생략.)
... | geostats lat lon count
명령어 이후 테이블 (클러스터링 및 count 필드 추가 )
cluster_id |
latitude |
longitude |
count |
---|---|---|---|
0_6_5 |
37 |
126.5 |
1 |
0_6_5 |
37.5 |
127.5 |
1 |
0_6_5 |
38.5 |
128 |
1 |
Parameters
...| geostats latitude longitude aggr_funcs(, aggr_funcs)* (aggr_by)? (cell_size)* (level)* (bounds_sqr)*
이름 |
설명 |
필수/옵션 |
---|---|---|
latitude longitude |
위, 경도 한 쌍을 필수로 입력해야하며 십진수 도(DD)(ex 41.40338, 2.17403) 형식을 따라야합니다. (Latitude, 위도 / Longitude, 경도) |
필수 |
aggr_funcs |
집계 함수를 나타내며, 통계 함수를 실행합니다. 아래 표와 같은 옵션이 존재합니다. |
필수 |
aggr_by |
명령어 사용시 생략 가능하며 필드를 집계 기준으로 두어 |
옵션 |
cell_size |
데이터 클러스터링을 하는 셀의 크기를 설정하며 (위,경도의)도 값을 의미합니다. 해당 옵션 생략 시 default(size = 22.5) 값이 지정됩니다. |
옵션 |
level |
위,경도 데이터를 전달 된 Level 에 따라 각각의 위치를 기록합니다. |
옵션 |
bounds_sqr |
검색 초기결과 값 및 표시화면 제한을 위한 두 쌍의 위,경도를 지정(남서, 북동경계 좌표 순)합니다. 생략 시 전세계 화면 및 보유한 모든 결과를 보여줍니다. |
옵션 |
aggregation function list
함수 명 |
역할 |
필수요소 |
예시 |
---|---|---|---|
count |
대상의 수를 구하는 함수. |
괄호 및 필드명 미사용 |
count |
sum |
대상 필드의 합계를 구하는 함수. |
괄호 및 필드명 |
sum(Out) |
avg |
대상 필드의 평균을 구하는 함수. |
괄호 및 필드명 |
avg(Out) |
max |
대상 필드의 최고 값을 구하는 함수. |
괄호 및 필드명 |
max(Out) |
min |
대상 필드의 최저 값을 구하는 함수 |
괄호 및 필드명 |
min(Out) |
Parameters BNF
geostats_command : latitude longitude aggr_funcs aggr_by cell_size level bound_sqr
latitude : field
longitude : field
aggr_funcs : aggr_funcs COMMA aggr_func
| aggr_func
aggr_func : WORD LPAREN field RPAREN
| WORD
aggr_by : BY field
bound_sqr : BOUNDS LPAREN latlon COMMA latlon COMMA latlon COMMA latlon RPAREN
cell_size : SIZE EQUALS DOUBLE
level : LEVEL EQUALS NUMBER
field : WORD
latlon : DOUBLE
WORD : \w+
COMMA : ,
LPAREN : \(
RPAREN : \)
EQUALS : \=
SIZE : size|SIZE
LEVEL : level|LEVEL
BOUNDS : bounds|BOUNDS
NUMBER : \d+
BY : by|BY
DOUBLE : [-+]?[0-9]+(\.([0-9]+)?([eE][-+]?[0-9]+)?|[eE][-+]?[0-9]+)