간단한 쿼리를 시도 할 때

 SELECT "Water_Service_Area_Boundaries_Non_Cadastral"."Network", count(*), sum(st_length(geometry)) FROM "W_Mains_DSC_ExclAbandoned", "Water_Service_Area_Boundaries_Non_Cadastral" WHERE ST_Intersects("Water_Service_Area_Boundaries_Non_Cadastral", "W_Mains_DSC_ExclAbandoned") GROUP BY "Water_Service_Area_Boundaries_Non_Cadastral"."Network"  

이 오류가 발생합니다.

Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry 

카운트가있는 간단한 그룹을 생성합니다.

또한 다음도 잘 작동합니다.

  Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned  

독립적으로 작동하지만 함께 연결될 때는 작동하지 않는 쿼리 하위 집합의 예

전체 길이

example1

그룹 만

example2

st_length를 추가하는 경우

example3

ST_Intersects에서 .geometry를 사용해 보았습니다. div> 그리고 이것은 정확한 카운트를 제공하지만 pragma geome을 제공합니다. 합계를 추가 할 때 오류 시도

example4

의견

  • ST_Length에는 투영 정보 (SRID)가 필요합니다. gis.stackexchange.com/questions/35462/ …
  • 첫 번째 쿼리는 geometry 열이있는 두 테이블을 참조합니다. ST_length()를 수행 할 도형 열을 지정해야합니다. Network 열에 대한 표를 지정한 것처럼
  • 내가 이해하지 못하는 것은 '이 2 개의 이유입니다. 문제가있는 쿼리는 스스로 실행될 때 작동합니다. ' 질문에 화면 캡처를 추가하겠습니다.
  • @she_weeds 죄송합니다. .geometry 없이는 불가능하다는 것을 깨달았습니다. ' 오류가 발생하지 않았지만 ' 수에 적절한 값을 제공하지 않아 교차가 작동하지 않았습니다. ' 네트워크 영역에서 줄 길이를 실행하는 문제는 여전히 동일한 문제를 제공합니다.

답변

제 생각에는 ST_Length_Spheroid()로 작업하지 않기 때문에 SRID 가 필요하지 않습니다.

@she_weeds가 가리키는 것은 참으로 맞습니다.

 SELECT ws."Network", count(ws."Network"), sum(st_length(ws.geometry)) FROM "Water_Service_Area_Boundaries_Non_Cadastral" AS ws, "W_Mains_DSC_ExclAbandoned" AS wmain WHERE ST_Intersects(ws.geometry, wmain.geometry) GROUP BY ws."Network"  

댓글

  • 감사합니다. ' 길이가 필요한 입력 데이터 세트 중 하나의 지오메트리임을 알아야했습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다