Quando tento uma consulta simples
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"
Recebo este erro
Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry
Quando tento sem o st_length
funciona para criar um grupo simples com contagens.
Além disso, apenas o seguinte funciona bem
Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned
Exemplos do subconjunto da consulta que funcionam independentemente, mas não quando agrupados
Apenas o comprimento total
Apenas o grupo
Quando eu simplesmente adiciono st_length
Eu tentei com .geometria no ST_Intersects
e isso dá contagens corretas, mas dá o pragma geome tente o erro quando a soma for adicionada
Comentários
Resposta
Na minha opinião, você não precisa de nenhum SRID porque não está trabalhando com ST_Length_Spheroid()
.
O que @she_weeds está apontando é realmente correto.
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"
Comentários
- Obrigado, então ele precisava saber que é ' a geometria de um dos conjuntos de dados de entrada para os quais precisamos do comprimento.
geometry
. Você precisa especificar em qual coluna de geometria deseja executarST_length()
. Assim como você especificou a tabela para aNetwork
coluna