Hola Alvaro

Siempre es que toca leer detalladamente la documentacion!! jejeje, claro la
verdad no le había puesto mucho cuidado  al concepto de frame... muchas
gracias!

2018-04-04 15:55 GMT-05:00 Alvaro Herrera <alvhe...@alvh.no-ip.org>:

> Hellmuth Vargas escribió:
>
> > SELECT *,
> >         array_agg(x) OVER () as todos,
> > array_agg(x) OVER (ORDER BY x) as order_asc,
> >         array_agg(x) OVER (ORDER BY x DESC) as order_desc,
> >         last_value(x) OVER (ORDER BY x)
> >        FROM generate_series(1, 5) AS x order by 1;
> >
> > cuyos resultados son:
> >
> >  x |    todos    |  order_asc   |  order_desc  | last_value
> > ---+-------------+-------------+-------------+------------
> >  1 | {1,2,3,4,5} | {1}         | {5,4,3,2,1} |          1
> >  2 | {1,2,3,4,5} | {1,2}       | {5,4,3,2}   |          2
> >  3 | {1,2,3,4,5} | {1,2,3}     | {5,4,3}     |          3
> >  4 | {1,2,3,4,5} | {1,2,3,4}   | {5,4}       |          4
> >  5 | {1,2,3,4,5} | {1,2,3,4,5} | {5}         |          5
> > (5 rows)
> >
> >
> > Y la verdad no entiendo la lógica del 'filtrado' que hace el order by
> > (ASC/DESC). Gracias Lista
>
> No es el ASC/DESC que hace filtrado.  Y en realidad no se hace ningún
> filtrado;
> lo que se hace es definir el "frame".  Como no lo especificas, la
> documentación
> indica cuál es la definición por omisión:
>
>         The default framing option is RANGE UNBOUNDED PRECEDING, which is
> the
>         same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW; it sets
> the
>         frame to be all rows from the partition start up through the
> current
>         row's last peer (a row that ORDER BY considers equivalent to the
>         current row, or all rows if there is no ORDER BY).
> https://www.postgresql.org/docs/10/static/sql-select.html
>
> es decir, en cada registro, el frame es "todos los registros que vienen
> antes del registro actual (UNBOUNDED PRECEDING), y hasta el registro
> actual (CURRENT ROW)".  Con el ASC/DESC del order by, cambias la
> definición de cuáles registros vienen "antes".
>
> --
> Álvaro Herrera                https://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>



-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Reply via email to