Kiedy próbuję wykonać proste zapytanie
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"
Otrzymuję ten błąd
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
Kiedy spróbuję bez st_length
działa w celu utworzenia prostej grupy z licznikami.
Również następujące elementy działają dobrze
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Przykłady podzbioru zapytania, które działa niezależnie, ale nie w połączeniu ze sobą
Tylko całkowita długość
Tylko grupa
Gdy po prostu dodam st_length
Próbowałem z .geometry w ST_Intersects
i to daje poprawne zliczenia, ale daje pragma geome spróbuj błąd podczas dodawania sumy
Komentarze
Odpowiedź
Moim zdaniem nie potrzebujesz żadnego SRID , ponieważ nie pracujesz z ST_Length_Spheroid()
.
@she_weeds wskazuje, że rzeczywiście poprawne.
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"
Komentarze
- Dzięki – więc musiał wiedzieć, że ' to geometria jednego z wejściowych zestawów danych, dla których potrzebujemy długości.
geometry
. Musisz określić, na której kolumnie geometrii chcesz wykonaćST_length()
. Tak jak podałeś tabelę dlaNetwork
kolumny