QGIS Field Calculator를 사용하여 다른 열을 기준으로 열의 일부 합계를 계산합니까?


17

다른 열의 값을 기반으로 한 열의 값 합계를 계산하고 싶습니다. 내 질문을 설명하기 위해 아래 그림을 올렸습니다. 두 번째 열은 우편 번호, 세 번째 총 판매량으로 구성됩니다. 우편 번호 당 총 판매량이 얼마인지 알고 싶습니다. 따라서이 경우 :

열 2의 값에 대한 열 3의 합은 무엇입니까 1023? 그러면 출력은이어야합니다 4 (0+1+1+2+0). 1024동일한 논리에 따라 합은 11.5가되어야합니다.

이것은 상당히 큰 데이터 세트이므로 QGIS 필드 계산기 (또는 다른 도구)가 우편 번호의 총 판매량을 나타내는 새로운 필드를 계산하도록하고 싶습니다. 지금까지는 작동하지 않는 것 같으며 여기 누군가가 나를 도울 수 있기를 바랍니다.

보시다시피 일부 누락 된 값이 있는데 계산에 문제가 있습니까? 아마도 그것은 테이블이라는 것입니다.

예


3이어야합니다 (0 + 1 + 1 + 2 + 0) ?? 정말?
user7172

답변:


25

업데이트 : QGIS 2.18 (07/07/2017) :

에서 필드 계산기 에는 사용할 수 집계 함수 sum는 식에 기초하여 항목의 값을 합산 할 수있다. 선택적으로 합계를 위해 피처를 그룹화하고 필터링 할 수도 있습니다. 따라서 필드 계산기에서 간단히 다음을 사용할 수 있습니다.

sum( "Sum", "Sales")

GroupStats 플러그인을 사용하는 방법과 정확히 동일합니다 .



원본 게시물 : 2016 년 2 월 3 일

플러그인> 플러그인 관리 및 설치 에서 다운로드해야 할 GroupStats 플러그인을 사용하십시오 .

표시 한 일부 속성을 사용하는 예제 레이어는 다음과 같습니다.

층

그럼 :

  1. GroupStats 플러그인을 실행하고 합산 ( Sales행, Sum값) 관련 필드를 선택한 다음 계산 을 클릭하십시오 . 각 판매액의 합계를 보여주는 결과가 표시됩니다.

    GroupStats 플러그인

  2. GroupStats 도구 모음에서 결과를 .csv 파일로 저장하십시오.

    CSV로 내보내기

  3. 인터페이스 나 툴바에서 .csv 파일을 QGIS로 다시 가져옵니다.

    레이어> 레이어 추가> 구분 된 텍스트 레이어 추가 ( 값은 세미콜론으로 구분됨 )

  4. 수행합니다은 조인 일치하는, Shape 파일 및 .csv 파일로 Sales필드를 :

    조인

  5. shapefile에는 이제 .csv 파일의 합계 값이 포함되어야합니다.

    결과

원하는 경우 Save As...shapefile 에서 옵션 을 사용 하여 결합 된 필드를 유지하기 위해 새 옵션으로 저장할 수 있습니다.


이 답변의 필드 계산기 구성 요소에 그룹 및 / 또는 필터링하는 SQL 줄이 포함되어 있으면 도움이 될 것입니다. @Joseph
eyerah

@eyerah-표현식 이 그룹 필터로 sum( "Sum", "Sales")사용 "Sales"됩니다. 이것이 의미하는 바입니까?
Joseph

1
오. 나는 지금 그것을 참조하십시오. 그것이 제가 의미 한 바입니다. 감사.
eyerah

12

최신 QGIS 버전 2.14로 업데이트하면 가상 레이어를 사용하여 다음과 같은 SQL 문을 작성할 수 있습니다.

SELECT "MYTABLE"."MYID", Sum("MYTABLE"."SALES")  AS zip_sale /*:int*/
FROM "MYTABLE"
GROUP BY "MYTABLE"."ZIPCODE"

UI는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

sql 버튼 뒤에 쿼리 빌더가있는 DB 관리자를 사용할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

MYID 열을 사용하여 요약 된 판매를 기본 테이블로 다시 조인 할 수 있습니다. 조인 탭은 테이블 속성 아래에 있습니다.

아래 QGIS 시각적 변경 로그를 살펴보십시오Feature: Virtual layers


6

이를 수행하는 방법은 다음과 같습니다.

  • 속성 테이블에서 기능별 선택을 선택하십시오. "column-name"= 1023을 입력하십시오. 값이 1023 인 모든 필드가 선택됩니다.
  • 벡터 도구-> 분석 도구-> 기본 통계로 이동하십시오. 판매가있는 레이어와 열을 선택하십시오. "선택된 값만"확인란을 확인하십시오. 합계가 결과 창에 표시됩니다. 당신은 그것을 적어야합니다;)
  • 모든 우편 번호에 대해 단계를 반복하십시오

1
PS 결 측값은 문제가되지 않습니다.
Miron

이것은 간단하고 잘 작동하는 접근법입니다. 그러나 Ammar가 언급 한 것처럼 대규모 데이터 세트를 처리 할 때 시간이 많이
소요될 수 있습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.