Quando provo una query semplice
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"
Ottengo questo errore
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
Quando provo senza st_length
funziona per creare un gruppo semplice con i conteggi.
Anche solo quanto segue funziona bene
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Esempi del sottoinsieme della query che funzionano indipendentemente ma non quando messi insieme
Solo la lunghezza totale
Solo il gruppo
Quando aggiungo semplicemente st_length
Ho provato con .geometry in ST_Intersects
e questo dà i conteggi corretti ma dà il pragma geome prova lerrore quando viene aggiunta la somma
Commenti
Risposta
Secondo me non hai bisogno di alcun SRID perché non stai lavorando con ST_Length_Spheroid()
.
Ciò su cui @she_weeds sta puntando è davvero corretto.
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"
Commenti
- Grazie -quindi era necessario sapere che ' è la geometria di uno dei set di dati di input per cui abbiamo bisogno della lunghezza.
geometry
. Devi specificare su quale colonna della geometria desideri eseguireST_length()
. Proprio come hai specificato la tabella per laNetwork
colonna