답변:
또는 ArcToolBox 도구 빈도 (Analysis Tools >> Statistics >> Frequency)를 실행하여 고유 한 값과 표시되는 횟수를 가진 테이블을 출력 할 수 있습니다.
또는 필드에 SearchCursor를 가져온 파이썬 스크립트를 작성한 다음 양식의 모든 값 목록을 작성할 수 있습니다.
if value not in myList:
myList.append(value)
파이썬리스트 이해를 사용하십시오.
import arcpy
fldName = 'val_fld'
fcName = 'feature_class.shp'
#set creates a unique value iterator from the value field
myList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName)])
큰 데이터 세트의 경우 메모리 효율적인 방법은 생성기 표현식 을 사용하는 것 입니다.
myList = set((row.getValue(fldName) for row in arcpy.SearchCursor(fcName,fields=fldName))
fields
인수를 지정합니다.myList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName, fields=fldName)])
데이터가 PGDB 형식 인 경우 하위 쿼리를 사용하여 쿼리 작성기 대화 상자 (정의 쿼리, 특성 별 선택, 도구 상자 식 등) 내에서 다음을 수행 할 수 있습니다.
SELECT * FROM tableName WHERE ...
column_to_test_for_unique_values IN
(SELECT column_to_test_for_unique_values
FROM table_name
GROUP BY column_to_test_for_unique_values HAVING
Count(column_to_test_for_unique_values)=1)
column_to_test_for_unique_values의 값이 고유 한 레코드를 리턴합니다.
기본 (이전의 ArcView) 라이센스 만있는 경우 테이블보기를 열고 열을 마우스 오른쪽 버튼으로 클릭 한 후 요약을 선택할 수 있습니다.
데이터가 SDE (공간 데이터베이스 엔진)에있는 경우 Python 및 Arcpy의 ArcSDESQLExecute 오브젝트를 사용할 수 있습니다. 이 "방법"을 사용하여 복잡한 SQL을 전달할 수 있습니다.
# set up executor for sql
executor = arcpy.ArcSDESQLExecute(sde_connection_sql)
# sql statements
select_max = """select max(LOAD_ID) from SDE.FEATURE_CLASS"""
# get load id
result_max_id = executor.execute(select_max)
또는 Python 스크립트를 사용하여 CSV로 내 보낸 다음 다른 데이터베이스 (예 : SpatiaLite)의 Python API를 사용하여 csv를 읽고 동일한 스크립트 내에서 적절한 SQL 쿼리를 수행하십시오. 큰 테이블의 경우이 목록 작성기-dunno를 롤링하는 것보다 약간 빠를 수 있습니다.
그러나 여러분은 그렇게합니다. 이것은 여전히 ArcGIS의 정말 귀찮은 "기능"입니다.
distinct
하위 쿼리에서 를 사용하는 것은 어떻습니까 (다음은 FGDB 기능 클래스에 있음).
"STATE_NAME" = (select distinct "STATE_NAME" from EsriUsaCountiesDetailed)
로부터 참고 도움 이 한계가 있음 (10.0) :
적용 범위, 모양 파일 및 기타 비지오 데이터베이스 파일 기반 데이터 소스는 하위 쿼리를 지원하지 않습니다.