Re: Aggregate functions - Mailing list pgsql-general

From Tom Lane
Subject Re: Aggregate functions
Date
Msg-id 6887.981316224@sss.pgh.pa.us
Whole thread Raw
In response to Aggregate functions  ("John Duffy" <jbduffy@cwcom.net>)
List pgsql-general
"John Duffy" <jbduffy@cwcom.net> writes:
> What I would like to be able to do is a select like this:
> SELECT equity_id, start_date(price), end_date(price), min(price),
> max(price)
> Are there aggregate function, such as 'first' and 'last', that will store
> the first and last row value of  a series of rows ?

Don't min(date) and max(date) do what you want?  If not, please explain
what you want more carefully.

"First" and "last" aggregates would be trivial to write, but I doubt
they'd be useful for anything, because the rows of the table are not
guaranteed to be delivered to the aggregate function in any particular
order.  In general SQL does not believe that row ordering is a
meaningful concept --- ORDER BY is a decoration to produce nice-looking
output for human consumption, not part of the computational model.  So
you need to define the results you want without reference to row order.

            regards, tom lane

pgsql-general by date:

Previous
From: "John Duffy"
Date:
Subject: Aggregate functions
Next
From: "Tim Barnard"
Date:
Subject: 7.1 question