Supongamos que tengo esta tabla:funciones de ventana y más agregación "local"
select * from window_test;
k | v
---+---
a | 1
a | 2
b | 3
a | 4
En última instancia quiero llegar:
k | min_v | max_v
---+-------+-------
a | 1 | 2
b | 3 | 3
a | 4 | 4
Pero yo sería tan feliz de conseguir esto (ya que yo puede filtrar fácilmente con distinct
):
k | min_v | max_v
---+-------+-------
a | 1 | 2
a | 1 | 2
b | 3 | 3
a | 4 | 4
¿es posible lograr esto con PostgreSQL 9.1+ func ventana ciones? Estoy tratando de entender si puedo conseguir que use una partición separada para la primera y última ocurrencia de k=a
en esta muestra (ordenada por v
).
Primero: ¿Desea "colapsar" rangos completos? Es decir. ¿Qué esperarías si agregas '(a, 5), (a, 6), (a, 7)' a tu conjunto de datos? Segundo: ¿'v' siempre está aumentando perfectamente en 1 o puede haber lagunas? –
@ A.H. 'v' no está aumentando perfectamente (de hecho, es una marca de tiempo). Sí, quiero colapsar rangos completos y esperaría '(a, 4, 5)' como la última tupla después de insertar '(a, 5)'. –
@KonradGarus, ¿alguna de las soluciones proporcionadas funciona para usted? – vyegorov