Când încerc o interogare simplă

 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"  

Am primit această eroare

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

Când o încerc fără st_length funcționează pentru a crea un grup simplu cu numărări.

De asemenea, doar următoarele funcționează bine

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

Exemple de subset de interogare care funcționează independent, dar nu atunci când sunt strânse împreună

Doar lungimea totală

exemplu1

Doar grupul

exemplu2

Când adaug pur și simplu st_length

exemplu3

Am încercat cu .geometrie în ST_Intersects și aceasta oferă numărătoare corecte, dar dă geomului pragmatic încercați eroarea când suma este adăugată

exemplu4

Comentarii

  • ST_Length necesită informații de proiecție (SRID) vezi gis.stackexchange.com/questions/35462/…
  • Prima dvs. interogare face trimitere la două tabele cu coloana geometry. Trebuie să specificați pe ce coloană de geometrie doriți să efectuați ST_length(). La fel cum ați specificat tabelul pentru coloana Network
  • Ceea ce nu înțeleg ' atunci este motivul pentru care aceste 2 interogările cu problemele funcționează atunci când sunt gestionate singure. ' voi adăuga capturi de ecran la întrebare.
  • @she_weeds îmi pare rău, tocmai mi-am dat seama că fără .geometria nu era ' t a dat o eroare, dar, de asemenea, nu ' t a dat o valoare adecvată pentru numărare, astfel încât intersecția nu a funcționat '. Problema legată de lungimea liniilor în zona de rețea dă totuși aceeași problemă.

Răspuns

În opinia mea, nu aveți nevoie de SRID deoarece nu lucrați cu ST_Length_Spheroid().

Ce indică @she_weeds într-adevăr corect.

 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"  

Comentarii

  • Mulțumesc – deci trebuia să știm că ' este geometria unuia dintre seturile de date de intrare pentru care avem nevoie de lungime.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *