Wanneer ik een eenvoudige query probeer
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"
Ik krijg deze foutmelding
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
Wanneer ik het probeer zonder de st_length
het werkt om een eenvoudige groep met tellingen te maken.
Ook werkt alleen het volgende prima
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Voorbeelden van de subset van de query die onafhankelijk werkt, maar niet als ze aan elkaar worden geregen
Alleen de totale lengte
Alleen de groep
Als ik gewoon de st_length toevoeg
Ik heb geprobeerd met .geometry in de ST_Intersects
en dit geeft de juiste tellingen, maar geeft de pragma-geome probeer de fout wanneer de som wordt opgeteld
Opmerkingen
Antwoord
Naar mijn mening heb je geen SRID nodig omdat je niet werkt met ST_Length_Spheroid()
.
Waar @she_weeds naar verwijst is inderdaad correct.
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"
Reacties
- Bedankt – dus het moest weten dat het ' de geometrie is van een van de invoergegevenssets waarvoor we de lengte nodig hebben.
geometry
. U moet specificeren op welke geometriekolom uST_length()
wilt uitvoeren. Net zoals je de tabel hebt opgegeven voor deNetwork
kolom