Re: How to find current row number relative to window frame

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Art Ruszkowski <a_(at)prudenttradingsystems(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How to find current row number relative to window frame
Date: 2013-04-26 17:25:09
Message-ID: 14508.1366997109@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Art Ruszkowski <a_(at)prudenttradingsystems(dot)com> writes:
> I have a user defined aggregate function and in Sfunc I need to
> reference current row number relative to window frame. Ideallly I would like to have following construct:

> select my_aggregate(x,current_row_number_relative_to window) over
> (order by y rows between n preceding and current row) as..... from .

Couldn't you make the aggregate track the current row number as part of
its state?

While it's a bit annoying to have to do that, I don't see any other
solution that doesn't involve converting the aggregate into a
full-fledged window function, which you probably don't want to do.
(Even then, nodeWindowAgg.c doesn't seem to expose a function for
row number within frame, only row number within partition.)

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jeff Janes 2013-04-26 18:07:54 Where to set search_path
Previous Message Tom Lane 2013-04-26 16:50:55 Re: NOTIFY channel