Re: How to enumerate partitions from a window function?
| От | Tom Lane |
|---|---|
| Тема | Re: How to enumerate partitions from a window function? |
| Дата | |
| Msg-id | 583850.1599141682@sss.pgh.pa.us обсуждение |
| Ответ на | How to enumerate partitions from a window function? (Alban Hertroys <haramrae@gmail.com>) |
| Ответы |
Re: How to enumerate partitions from a window function?
|
| Список | pgsql-general |
Alban Hertroys <haramrae@gmail.com> writes:
> As stated above, I want to enumerate the runs, starting at 1 and
> incrementing by 1 every time a partition from the 'run' window closes,
> Is there a way to achieve this through window functions, or do we need to
> wrap the thing in a subquery to achieve this?
I think this'll work:
select datetime, property_A, property_B
, first_value(datetime)::time over run as swap_time
, dense_rank() over (order by property_A, property_B)
, value
from process_data
window run as (partition by property_A, property_B order by datetime)
;
You can't do it with a window function over the "run" window because
no window function ever looks outside the current partition. But
that's easy to fix by using a different window definition. The
planner is smart enough to see that these windows are compatible
and only need one sort to be performed.
regards, tom lane
В списке pgsql-general по дате отправления: