Když zkusím jednoduchý dotaz
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"
Zobrazuje se mi tato chyba
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
Když to zkusím bez st_length
funguje to tak, že vytvoříte jednoduchou skupinu s počtem.
Také následující funguje dobře
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Příklady podmnožiny dotazu, které fungují samostatně, ale ne když jsou spojeny dohromady
Jen celková délka
Pouze skupina
Když jednoduše přidám st_length
Zkoušel jsem s .geometry v ST_Intersects
a to dává správné počty, ale dává pragma geome při přidání součtu zkuste chybu
Komentáře
Odpověď
Podle mého názoru nepotřebujete žádný SRID , protože nepracujete s ST_Length_Spheroid()
.
Na co @she_weeds ukazuje opravdu správné.
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"
Komentáře
- Díky – takže jsme potřebovali vědět, že ' s geometrií jednoho ze vstupních datových souborů, pro které potřebujeme délku.
geometry
. Musíte určit, na kterém sloupci geometrie chceteST_length()
provést. Stejně jako jste zadali tabulku proNetwork
sloupec