När jag försöker med en enkel fråga
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"
Jag får detta fel
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
När jag försöker utan st_length
det fungerar för att skapa en enkel grupp med räkningar.
Också följande fungerar bra
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Exempel på delmängden av frågan som fungerar oberoende men inte när de strängas ihop
Bara den totala längden
Bara gruppen
När jag bara lägger till st_length
Jag har försökt med .geometry i ST_Intersects
och detta ger korrekta räkningar men ger pragma-geomet försök fel när summan läggs till
Kommentarer
Svar
Enligt min mening behöver du inget SRID eftersom du inte arbetar med ST_Length_Spheroid()
.
Vad @she_weeds pekar på är verkligen korrekt.
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
- Tack – så det behövde veta att det ' är geometrin för en av de ingångsdata som vi behöver längden för.
geometry
. Du måste ange vilken geometriska kolumn du vill utföraST_length()
på. Precis som du angav tabellen förNetwork
-kolumnen