Når jeg prøver et enkelt spørsmål

 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"  

Jeg får denne feilen

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

Når jeg prøver det uten st_length det fungerer for å lage en enkel gruppe med tellinger.

Også bare følgende fungerer greit

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

Eksempler på delsett av spørringen som fungerer uavhengig, men ikke når de er sammenkoblet

Bare den totale lengden

eksempel1

Bare gruppen

eksempel2

Når jeg bare legger til st_length

eksempel3

Jeg har prøvd med .geometry i ST_Intersects og dette gir riktige tellinger, men gir pragma-geomet prøv feil når summen er lagt til

eksempel4

Kommentarer

  • ST_Length krever projeksjonsinformasjon (SRID) se gis.stackexchange.com/questions/35462/…
  • Den første forespørselen din refererer til to tabeller med kolonnen geometry. Du må spesifisere hvilken geometrisk kolonne du vil utføre ST_length() på. Akkurat som du spesifiserte tabellen for Network -kolonnen
  • Det jeg ikke ' ikke forstår, er hvorfor disse 2 spørsmål med problemene fungerer når de drives av seg selv. Jeg ' Jeg legger til skjermgrep til spørsmålet.
  • @she_weeds beklager at jeg bare skjønte at uten .geometry var det ikke ' t gir en feil, men var ikke ' t som ga en riktig verdi for tellingen, så krysset fungerte ikke ' t. Problemet med å kjøre linjelengden i nettverksområdet gir likevel det samme problemet.

Svar

Etter min mening trenger du ikke noe SRID fordi du ikke jobber med ST_Length_Spheroid().

Det @she_weeds peker på er faktisk riktig.

 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"  

Kommentarer

  • Takk – så det trengte å vite at det ' er geometrien til et av inngangssettene vi trenger lengden for.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *