PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

RANGE PRECEDING n'est pris en charge qu'avec UNBOUNDED

Oui ... Les fonctions de fenêtre de PostgreSQL n'implémentent pas encore de plages.

J'ai eu de nombreuses situations où ils auraient été utiles, mais c'est beaucoup de travail pour les mettre en œuvre et le temps est limité.

Vous devrez utiliser une jointure gauche sur generate_series (et, le cas échéant, l'agrégation) pour transformer la plage en une séquence régulière de lignes, en insérant des lignes nulles là où il n'y a pas de données et en combinant plusieurs données à partir d'une seconde en une seule valeur là où il y a plusieurs valeurs.

Ensuite, vous faites un (ROWS n PRECEDING ...) fenêtre sur les données jointes à gauche et agrégées pour obtenir la moyenne courante.