Cuando intento una consulta simple

 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"  

Recibo este error

Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry 

Cuando lo intento sin el st_length funciona para crear un grupo simple con conteos.

También lo siguiente funciona bien

  Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned  

Ejemplos del subconjunto de la consulta que funcionan de forma independiente pero no cuando se unen

Solo la longitud total

ejemplo1

Solo el grupo

ejemplo2

Cuando simplemente agrego st_length

example3

He probado con .geometry en ST_Intersects y esto da recuentos correctos pero da el pragma geome prueba de error cuando se agrega la suma

ejemplo4

Comentarios

  • ST_Length requiere información de proyección (SRID), consulte gis.stackexchange.com/questions/35462/…
  • Su primera consulta hace referencia a dos tablas con la columna geometry. Debe especificar en qué columna de geometría desea realizar ST_length(). Al igual que especificó la tabla para la Network columna
  • Lo que no ' no entiendo es por qué estos 2 las consultas con los problemas funcionan cuando se ejecutan por sí mismas. ' agregaré capturas de pantalla a la pregunta.
  • @she_weeds lo siento, me acabo de dar cuenta de que sin el .geometry no era ' t da un error pero tampoco ' t da un valor adecuado para los conteos, por lo que la intersección no ' t funciona. Sin embargo, el problema de ejecutar la longitud de las líneas en el área de red sigue siendo el mismo.

Respuesta

En mi opinión, no necesita ningún SRID porque no está trabajando con ST_Length_Spheroid().

Lo que @she_weeds apunta es de hecho correcto.

 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"  

Comentarios

  • Gracias. Necesitaba saber que ' es la geometría de uno de los conjuntos de datos de entrada para los que necesitamos la longitud.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *