Necesito extraer y devolver filas de datos cada vez que cs3Horizontal for a row = misma columna pero siguiente fila. Por ejemplo, en la imagen, ve que cs3Horizontal = 65 para las filas 85/86, devuelva esas filas.
He mirado numerosas opciones usando OVER, LEAD y LAG, pero para ser honesto, la documentación simplemente no proporciona suficientes detalles para alguien que nunca antes ha usado estas funciones de ventana. Creo que estoy buscando la solución correcta, pero ¿cómo la implemento?
Estoy usando PostgreSQL 9.2.9, compilado por Visual C++ compilación 1600, 64 bits. La tabla en cuestión son datos de series temporales y, como tal, la primera columna es la clave principal.
LEAD() y LAG() son las soluciones. Si quieres ambas filas:
select t.* from (select t.*, lag(cs3Horizontal) over (order by cs3time) as prev_cs3Horizontal, lead(cs3Horizontal) over (order by cs3time) as next_cs3Horizontal from t ) t where prev_cs3Horizontal = cs3Horizontal or next_cs3Horizontal = cs3Horizontal;