호스팅 피처 레이어의 소유자이거나 기관의 관리자인 경우 호스팅 피처 레이어에서 필드를 추가, 삭제 및 계산할 수 있습니다. 일부 제한 사항이 적용됩니다. 예를 들어 OBJECTID 필드는 삭제하거나 계산할 수 없습니다. 제한 사항의 전체 목록은 제한 섹션을 참고하세요.
호스팅 피처 레이어에 필드를 추가, 삭제 또는 계산하려면 먼저 레이어의 속성 테이블을 나타내야 합니다. 테이블에 대한 자세한 내용은 테이블 보기를 참고하세요.
필드 추가
- 아래 단계에 따라 테이블을 나타낼 수 있습니다.
- 테이블 옵션을 클릭합니다.
- 필드 추가를 클릭합니다.
- 이름 - 필드 이름은 공백, 하이픈, 괄호, 중괄호 같은 특수 문자, 또는 $, %, # 등의 문자를 포함할 수 없습니다. CHARACTER 또는 DATE 등 일반적으로 데이터베이스에 예약된 키워드로 간주되는 단어를 포함한 필드 이름은 사용하지 마세요. 특수 문자 또는 데이터베이스에 예약된 키워드가 있는 필드 이름을 추가하려고 하면 오류 메시지가 나타납니다.
- 별칭 - 이름보다 기술적이고 사용자에게 더 친숙한 필드의 대체 이름. 별칭은 특수 문자와 데이터베이스에 예약된 키워드를 포함할 수 있습니다.
- 유형 - 다음 중 하나와 같습니다.
- 날짜 - 날짜 및 시간. 날짜 필드 사용을 참고하세요.
참고 사항:
- 더블 - 소수 자릿수가 있는 숫자.
- 정수: -2,147,483,648부터 2,147,483,647(장정수(long integer))까지의 전체 숫자.
- 문자열 - 문자의 모든 시퀀스.
- 날짜 - 날짜 및 시간. 날짜 필드 사용을 참고하세요.
- 길이 - 문자열 필드가 저장할 수 있는 문자의 최대 길이. 길이는 문자열 필드 유형에 필요합니다. 기본값은 256자입니다.
필드 삭제
- 아래 단계에 따라 테이블을 나타낼 수 있습니다.
- 삭제하려는 필드가 포함된 열을 클릭합니다.
- 삭제를 클릭합니다. 필드 삭제를 확인합니다.
스타일 지정 및 필터용으로 맵에서 사용되는 필드와 OBJECTID, CREATIONDATE, CREATOR, EDITDATE, EDITOR 등의 특정 필드에는 삭제 옵션을 사용할 수 없습니다. 그러나 다른 맵은 심볼 및 필터용 필드(사용자의 맵이 사용하는 필드와 다름)를 사용할 수 있으며 이러한 필드에는 삭제를 사용할 수 있습니다. 다른 맵에서 심볼 및 필터용으로 사용될 수 있는 필드를 삭제할 때는 주의해야 합니다.
필드 계산
- 아래 단계에 따라 테이블을 나타낼 수 있습니다.
- 계산하려는 필드 값이 포함된 열을 클릭합니다.
- 계산을 클릭합니다.
식 만들기 대화 상자가 나타납니다.
기본 작업
식 만들기 대화 상자에서 더하기, 빼기, 곱하기, 나누기 같은 연산자를 사용하여 간단한 식을 만들 수 있습니다. 관련 예와 팁은 다음과 같습니다.
- 숫자 필드 SAMPLE에서 모든 값에 100을 곱하려면 식에 SAMPLE * 100.0을 입력합니다.
- 더 복잡한 방정식의 경우 계산 순서를 지정하려면 괄호를 사용할 수 있습니다. 예를 들어 SAMPLE * (BASELINE - 40)과 같습니다.
- 수학 연산자는 문자열 필드에서 사용할 수 없습니다. 문자열 함수 섹션에 설명된 문자열 함수를 사용해야 합니다.
- 더블 필드를 정수 필드에 대해 계산하는 경우 CAST 함수가 식에 자동으로 추가될 수 있습니다. 예를 들어 더블 필드인 POP을 정수 필드인 SAMPLE에 대해 계산하는 경우 식이 CAST(SAMPLE AS FLOAT)로 나타납니다. CAST 함수를 제거하면 안 됩니다. CAST 함수에 대한 자세한 내용은 아래의 숫자 함수를 참고하세요.
- 문자열에 작은따옴표를 포함하려면 작은따옴표 2개를 사용합니다. 예를 들면 'Nightingale''s'와 같습니다. 큰따옴표는 사용하지 마세요.
식을 생성한 후 계산 버튼을 클릭하세요. 오류가 있는 경우 오류 메시지가 대화 상자의 아래쪽에 나타납니다.
다음과 같은 추가 고려 사항이 있습니다.
함수 사용
연산자를 사용하는 간단한 식 외에 함수를 사용할 수도 있습니다. 함수는 필드 이름, 리터럴 및 기타 기능과 함께 작동합니다. 예를 들어 더블 필드를 계산해야 한다고 가정해 보겠습니다(TOTALPOP을 POP18로 나눔). 어떤 피처에 POP18이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 아래에 설명된 NULLIF 함수를 사용하여 이런 오류를 방지할 수 있습니다. 식은 TOTALPOP/NULLIF(POP18, 0)가 됩니다.
함수는 인수를 사용합니다. 아래 테이블에서 인수는 다음과 같을 수 있습니다.
- 필드 이름(단, 문자열, 숫자 또는 날짜 같은 인수 유형과 필드 유형이 일치하는 경우).
- 리터럴. 예를 들어 'Sailboat'(작은따옴표로 묶인 문자열), 숫자 5 또는 MM/DD/YYYY hh:mm:ss 형식의 날짜. 작은따옴표로 묶임.
- 기준에 맞지 않는 SQL 쿼리가 기관에서 내 허용되는 경우, 문자열 리터럴에 영어 이외의 문자는 N으로 이스케이프되어야 합니다(예: N'침엽수림').
- 올바른 유형(문자열, 숫자 또는 날짜)의 값을 반환하는 함수. 예를 들어 FLOOR(POWER(SAMP_ERR, 0.5))는 SAMP_ERR의 제곱근보다 작거나 동일한 가장 큰 정수를 반환합니다.
다음 테이블의 설명 열에 있는 예의 경우 주로 리터럴 인수를 사용합니다. 이러한 인수에 대해 필드 이름 또는 다른 함수를 대체할 수 있습니다.
문자열 함수
함수 | 설명 |
---|---|
CHAR_LENGTH(문자열) | 문자열에 있는 문자의 수를 반환합니다. 그 결과는 정수입니다. 예
|
CONCAT(문자열1, 문자열2) | 두 문자열을 연결합니다. 두 문자열만 제공할 수 있습니다. 두 개가 넘는 문자열을 연결하려면 아래 예와 같이 연속 CONCAT를 중첩합니다. 예
Null 값은 빈 문자열로 변환됩니다. |
POSITION(하위 문자열, 문자열)* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 사용하는 경우 POSITION(문자열의 하위 문자열)을 대신 사용해야 합니다. | 하위 문자열이 문자열에서 처음 나타나는 위치를 반환합니다. 하위 문자열이 발견되지 않으면 결과는 0입니다. 예
|
SUBSTRING(문자열, 시작, 길이) | 문자열의 일부를 반환합니다. 시작은 반환된 문자의 시작 위치를 지정하는 정수 색인이고 길이는 반환되는 문자의 수입니다. 예
|
TRIM(BOTH | LEADING | TRAILING ' ' FROM 문자열) | 문자열에서 모든 선행 또는 후행 공백이 제거된 문자열을 반환됩니다. 예
두 번째 인수는 중간에 공백이 있는 작은따옴표 두 개임을 유의해야 합니다. |
UPPER(문자열) | 문자열의 모든 문자가 대문자로 변환된 문자열을 반환합니다. 예
|
LOWER(문자열) | 문자열의 모든 문자가 소문자로 변환된 문자열을 반환합니다. 예
|
숫자 함수
아래에 설명된 숫자 함수 이외에, 데이터 열의 통계를 계산할 수 있습니다. 이러한 통계에는 레코드의 수, 최소값 및 최대값, 모든 값의 합계, 평균 값, 모든 값의 표준편차가 포함됩니다.
- 통계를 구하려는 필드 값이 포함된 열을 클릭합니다.
- 통계를 클릭합니다. 계산된 통계가 대화 상자에 나타납니다.
함수 | 설명 |
---|---|
ABS(숫자) | 숫자의 절대 값(양수)을 반환합니다. |
CEILING(숫자) | 숫자보다 크거나 같은 가장 작은 정수를 반환합니다. 예
|
COS(숫자) | 숫자의 삼각법 코사인을 반환하며, 이는 라디안의 각도로 간주됩니다. |
CAST(숫자 AS FLOAT | INT) | 숫자를 다른 유형으로 변환합니다. FLOAT 는 숫자를 더블로 변환하고 INT는 정수로 변환합니다. |
FLOOR(숫자) | 숫자보다 작거나 동일한 가장 큰 정수를 반환합니다. 예
|
LOG(숫자)* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 LN(숫자, 소수 자릿수)를 대신 사용해야 합니다. | 숫자의 자연 로그. |
LOG10(숫자)* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 LOG(숫자, 소수 자릿수)를 대신 사용해야 합니다. | 숫자의 밑이 10인 로그. |
MOD(숫자, n) | 숫자를 n으로 나눈 후 그 나머지를 반환합니다. n 및 숫자는 둘 다 정수여야 합니다. 예
|
NULLIF(숫자, 값) | 숫자와 값이 같을 경우 null을 반환합니다. NULLIF 는 일반적으로 값을 0으로 설정하여 0으로 나누기 오류를 방지하는 데 사용됩니다. 인수 중 하나에 null 필드 값이 있는 경우 계산 결과는 null이 됩니다. 예를 들어 더블 필드를 계산해야 한다고 가정해 보겠습니다(TOTALPOP을 POP18로 나눔). 어떤 피처에 POP18이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 필터를 생성하여 POP18이 0인 경우 레코드를 숨긴 다음 계산을 수행할 수 있습니다. 간단한 방법은 NULLIF을(를) 사용하는 것입니다.
|
POWER(숫자 , y) | 숫자를 지정한 거듭제곱 y 값으로 반환합니다. |
ROUND(숫자, 길이) | 지정된 길이로 숫자를 반올림합니다. 길이가 양수이면 숫자는 길이에 따라 지정된 소수점에서 반올림됩니다. 길이가 음수이면 소수점의 왼쪽에서 반올림됩니다. 예
|
SIN(숫자) | 숫자의 삼각법 사인을 반환하며, 이는 라디안의 각도로 간주됩니다. |
TAN(숫자) | 숫자의 탄젠트를 반환하며, 이는 라디안의 각도로 간주됩니다. |
TRUNCATE(숫자, 소수 자릿수)* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 TRUNC(숫자, 소수 자릿수)를 대신 사용해야 합니다. | 지정된 소수 자릿수에서 숫자를 자릅니다. 양의 소수 자릿수는 지정된 소수점까지 자릅니다. 소수 자릿수가 음수이면 소수점의 왼쪽에서 자릅니다. 예
|
날짜 함수
몇 가지 함수는 날짜 필드에 사용할 수 있습니다. 날짜 함수 목록을 살펴보고 속성 테이블의 날짜 필드를 사용하는 방법에 대해 자세히 알아보려면 날짜 필드 사용을 참고하세요.
날짜 필드 사용
몇몇 계산은 날짜 필드에 대해 수행할 수 있습니다. 예를 들어 날짜 필드에 시간을 더하고 빼거나 두 날짜 필드 간의 기간을 계산할 수 있습니다.
날짜 함수
다음과 같은 날짜 함수를 사용할 수 있습니다.
함수 | 설명 |
---|---|
CURRENT_DATE()* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 CURRENT_DATE를 대신 사용해야 합니다. | UTC 시간의 현재 날짜를 반환합니다. |
CURRENT_TIME()* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 CURRENT_TIME를 대신 사용해야 합니다. | 현재의 UTC 날짜와 시간(시, 분, 초)을 반환합니다. |
CURRENT_TIMESTAMP()* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 CURRENT_TIMESTAMP를 대신 사용해야 합니다. | 현재의 UTC 날짜와 시간(시, 분, 초, 밀리초)을 반환합니다. |
EXTRACT(unit FROM date)* 참고 사항:*포털의 호스팅 서버에서 ArcGIS Data Store 또는 PostgreSQL의 관리되는 데이터베이스를 통해 생성된 관계형 데이터 저장소를 사용하는 경우 CURRENT_DATE를 대신 사용해야 합니다. | 연도, 월, 일, 시간, 분 등 날짜/시간의 단일 부분을 반환합니다. 예를 들면 다음과 같습니다.
|
날짜 필드 계산
날짜 필드를 계산하는 경우 날짜/숫자 필드와 리터럴의 조합을 사용할 수 있습니다. 날짜 리터럴을 사용하는 경우 SQL 지원 날짜 형식을 사용해야 합니다.
날짜에 시간 더하기 또는 빼기
날짜 필드나 SQL지원 날짜 리터럴에 시간을 더하거나 빼서 업데이트된 날짜 필드를 생성할 수 있습니다. 예를 들어 날짜에 시간을 더하여 향후 검침일 또는 검토일을 계산할 수 있습니다.
다음 계산을 사용하여 날짜 필드에 시간을 더하거나 뺄 수 있습니다. 첫 번째 계산에서는 날짜 필드를 사용하며 두 번째 계산에서는 날짜 리터럴 값을 사용합니다. 숫자 필드와 숫자 리터럴도 사용할 수 있습니다. 세 번째와 네 번째 계산에서처럼, 필드와 리터럴의 조합이 지원됩니다.<DateField> + / - <NumberField> = updated date
DATE'<SQL-supported Date Literal>' + / - <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >' + / - <NumberField> = updated date
계산된 날짜 필드는 기존 날짜에서 원하는 만큼의 일수를 더하거나 뺀 값입니다. 일수는 정수이며 분수도 포함될 수 있습니다. 예를 들어 1.5일은 하루와 반나절 또는 36시간을 나타냅니다.
다음 예에서 기계 한 대가 2016년 6월 14일, 오전 10시에 설치되었습니다. 다음과 같은 계산 중 하나를 사용하여 이 설치일로부터 1개월(30일) 이후의 검침일을 생성할 수 있습니다. 첫 번째 계산에서는 값이 6/14/2016인 날짜 필드와 값이 30인 숫자 필드를 사용하는 반면 두 번째 계산에서는 날짜 리터럴과 숫자 리터럴을 사용합니다.<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM
두 날짜 간의 기간 계산
두 날짜 사이의 기간을 계산할 수 있습니다. 예를 들어 전기 계량기 설치일과 검침일이 있는 경우 두 날짜 간의 기간을 계산하여 설치일과 검침일 간의 기간이 허용 지침에 속하는지 확인할 수 있습니다. 계산 결과는 날짜 필드가 아니라 숫자 필드입니다.
날짜 필드와 날짜 리터럴의 조합을 사용하여 두 날짜 간의 기간을 계산할 수 있습니다. 다음의 첫 번째 계산에서는 날짜 필드를 사용하는 반면 두 번째 계산에서는 날짜 리터럴을 사용합니다. 세 번째와 네 번째 계산에서는 날짜 필드와 날짜 리터럴을 둘 다 사용합니다.<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2> = number of days in between
결과는 한 날짜 필드/리터럴에서 다른 날짜 필드/리터럴을 빼서 계산된 숫자 필드입니다. 숫자 결과(일수)는 정수이며 분수도 포함될 수 있습니다. 예를 들어 1.5일은 하루와 반나절 또는 36시간을 나타냅니다.
앞서 나온 전기 계량기 검침 예에서, 다음과 같은 계산 중 하나를 사용하여 설치일(6/1/2015)과 검침일(10/1/2015) 간의 기간을 계산할 수 있습니다. 첫 번째 계산에서는 날짜 필드를, 두 번째 계산에서는 날짜 리터럴을 그리고 세 번째와 네 번째 계산에서는 날짜 필드와 날짜 리터럴을 둘 다 사용합니다.<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)
날짜 필드를 사용할 때 고려할 사항
날짜 필드를 사용할 때는 다음과 같은 사항을 고려해야 합니다.
날짜 필드의 표시 형식 변경
날짜가 테이블에 보이는 방식을 변경할 수 있습니다. 테이블은 팝업 구성과 같은 형식으로 표시됩니다. 팝업 등록정보의 속성 구성 창에서 필드 별칭을 선택하여 날짜 필드의 표시 형식을 변경할 수 있습니다.
MM/DD/YYYY hh:mm:ss 형식으로 날짜를 입력합니다.
테이블에 날짜가 보이는 방식과 관계없이 MM/DD/YYYY hh:mm:ss 형식(작은따옴표로 묶임)으로만 날짜를 입력할 수 있습니다. 예를 들어 날짜 필드를 2014년 5월 27일 오후 5시로 설정하려면 '05/27/2014 05:00:00PM', '05/27/2014 5:00PM' 또는 '05/27/2014 17:00:00'(24시간제)을 입력합니다. 시간만 저장할 수는 없습니다. 시간은 항상 날짜와 함께 입력해야 합니다.
날짜는 UTC 시간에 입력되고 저장됩니다.
테이블의 날짜 필드는 UTC 날짜 및 시간을 포함하는 것으로 간주됩니다. UTC는 협정 세계시(Universal Time Coordinated)의 약자이며, 이는 영국 그리니치에 있는 지구 본초자오선(경도 0도)의 현재 시간과 거의 동일합니다. UTC는 GMT(Greenwich Mean Time; 그리니치 표준시)보다 정확한 버전입니다. 데이터를 호스팅하는 서버의 물리적 위치는 세계 어디에나 존재할 수 있기 때문에 날짜는 UTC로 간주됩니다. 날짜와 시간을 현지 시간대로 저장하면 많은 문제가 발생합니다. 특히 사용자 또는 데이터를 호스팅하는 서버가 다른 시간대로 이동할 때 문제가 나타납니다.
날짜 필드가 나타날 때마다 날짜가 UTC 시간에서 현지 시간으로 변환됩니다. 이는 컴퓨터를 쿼리하고 시간대 설정을 요청함으로써 이루어집니다. 예를 들어 컴퓨터가 태평양 표준시(PST)로 설정되어 있다고 가정해 보겠습니다. PST는 UTC보다 8시간 늦습니다. UTC 시간이 오전 9시이면 PST는 오전 1시 (일광 절약 시간의 적용에 따라 오전 2시일 수 있음)입니다.
식에 입력하는 날짜는 현지 시간대의 시간이 아니라 UTC 시간으로 간주합니다. 이러한 가정은 혼란을 초래할 수 있습니다. 예를 들어 PST로 설정된 컴퓨터를 사용하여 '05/27/2014 05:00:00PM'을 입력하는 경우 위에 설명한 시간 변환으로 인해 5/27/2014 9:00 AM으로 표시됩니다.
UTC-현지 시간대 변환을 확인하는 몇 가지 팁이 있습니다.
- 현재 날짜와 시간을 입력해야 하는 경우 아래의 시간 함수 중 하나를 사용하세요. 이러한 함수는 항상 UTC 시간을 반환합니다.
- 시간 컴포넌트 없이 날짜를 입력하는 경우에는 날짜에 12시간을 추가합니다. 예를 들어 '5/27/2014'를 입력하는 대신에 '5/27/2014 12:00PM' 또는 '5/27/2014 12:00'을 입력합니다. 이러한 오프셋이 필요한 이유는 시간 컴포넌트 없이 날짜를 입력하는 경우 해당 날짜의 자정으로 입력되고(5/27/2014는 5/27/2014 00:00:00으로 변환됨), 현지 시간대로 나타나는 경우 시간이 가감되기 때문입니다. 예를 들어 PST로 설정되어 있을 경우 5/27/2014를 입력하면 5/26/2014(27일 자정에서 7시간을 뺀 결과)로 나타납니다.
- 시간 컴포넌트와 함께 날짜를 입력하는 경우에는 시간에 현지 시간대 오프셋을 적용합니다. 즉 PST로 5/27/2014 12 PM을 입력해야 하는 경우, 8시간의 시차를 적용하여 '5/27/2014 8:00PM'을 입력합니다. 현지 시간대 오프셋을 찾으려면 UTC 시차 계산기 같은 검색 구문을 사용하여 웹에서 검색할 수 있습니다.
- UTC 시간에서 날짜 필드의 내용을 보려면, 테이블에 문자열 필드를 추가하고 이를 날짜 필드와 동일하게 계산할 수 있습니다. 날짜는 시간대 오프셋 없이 문자열로 변환됩니다. 또한 이 문자열에는 밀리초가 포함됩니다.
제한
- OBJECTID 필드, 또는 심볼, 타임 슬라이더, 필터, 레이블, 편집자 추적에 사용되는 필드에는 삭제를 사용할 수 없습니다. 그러나 다른 맵은 심볼 및 필터용 필드(사용자의 맵이 사용하는 필드와 다름)를 사용할 수 있으며 이러한 필드에는 삭제를 사용할 수 있습니다. 다른 맵에서 심볼 및 필터용으로 사용될 수 있는 필드를 삭제할 때는 주의해야 합니다.
- 필드 추가, 삭제, 계산은 레이어의 복사본 또는 관련 타일 레이어가 있는 호스팅 피처 레이어에 사용할 수 없습니다.
- 필드 추가, 삭제, 계산은 호스팅 피처 레이어와 테이블에만 사용할 수 있습니다. 이 기능을 사용하려면 레이어의 소유자 또는 내 기관의 관리자여야 합니다.
- 표준화된 SQL 쿼리만 지원됩니다.