Tengo una tabla en la que estoy insertando coordenadas de GPS (lat / lon) en cada registro.
esquema de tabla es como: (Id, Time, Lat, Lon)
¿Es posible calcular la distancia de dos registros continuos usando columnas calculadas? Algo en lo que el esquema se vuelve así: (Id, Time, Lat, Lon, Distanceof (ID -1, ID))
Nota: Sé cómo calcular la distancia de dos puntos, pero no sé si es posible acceder a los datos de varias filas en una columna calculada.
Respuestas
1 para la respuesta № 1Es imposible usar directamente los valores de otras filas en la definición de columna calculada, pero se puede crear una función definida por el usuario y usarla:
CREATE FUNCTION dbo.CalcDistance(@prev_row_id INT, @row_id INT)
AS
...
y luego definir la expresión de columna calculada como dbo.CalcDistance(Id - 1, Id)
.
1 para la respuesta № 2
Puede crear una función Distanceof para calcular la distancia. y puedes seleccionar como
Seleccione id, time, Lat, Lon, Distanceof (Lat, Lng, radio) de la tabla. se calculará para cada fila. Pero será mucho tiempo si estás haciendo muchas filas.