From: | "Dann Corbit" <DCorbit(at)connx(dot)com> |
---|---|
To: | "AgentM" <agentm(at)themactionfaction(dot)com>, "PostgreSQL General ML" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: SQL:2003 Window Functions for postgresql 8.3? |
Date: | 2006-08-24 18:36:58 |
Message-ID: | D425483C2C5C9F49B5B7A41F8944154757DB8E@postal.corporate.connx.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> -----Original Message-----
> From: pgsql-general-owner(at)postgresql(dot)org [mailto:pgsql-general-
> owner(at)postgresql(dot)org] On Behalf Of AgentM
> Sent: Thursday, August 24, 2006 11:27 AM
> To: PostgreSQL General ML
> Subject: Re: [GENERAL] SQL:2003 Window Functions for postgresql 8.3?
>
>
> On Aug 24, 2006, at 14:11 , Alvaro Herrera wrote:
>
> > Karen Hill wrote:
> >
> >> It would be really great if PostgreSQL supported SQL:2003 Window
> >> functions. I know that oracle and sql server have them already,
> >> so it
> >> would make postgres competitive in that area. I know there is a
> >> feature freeze for 8.2, is it doable for 8.3?
> >
> > The sooner you start writing a patch, the sooner you will be done
;-)
> >
> > I agree it would be nice to have them, but currently I don't think
> > there's anyone working on'em.
>
> Could someone elaborate on the window functions? This page http://
> en.wikipedia.org/wiki/SELECT has some examples but they make it seem
> like the functions are an overly-verbose LIMIT statement. So what's
> the benefit?
>
> -M
Window functions: SQL 2003 defines aggregates computed over a window
with ROW_NUMBER function, rank functions (i.e., RANK, DENSE_RANK,
PERCENT_RANK, CUME_DIST), and aggregate functions (e.g., inverse
distribution, hypothetical set function)
From:
http://savage.net.au/SQL/sql-2003-2.bnf.html
6.10 <window function> (p193)
<window function> ::= <window function type> OVER <window name or
specification>
<window function type> ::=
<rank function type> <left paren> <right paren>
| ROW_NUMBER <left paren> <right paren>
| <aggregate function>
<rank function type> ::= RANK | DENSE_RANK | PERCENT_RANK |
CUME_DIST
<window name or specification> ::= <window name> | <in-line
window specification>
<in-line window specification> ::= <window specification>
7.11 <window clause> (p331)
Specify one or more window definitions.
<window clause> ::= WINDOW <window definition list>
<window definition list> ::= <window definition> [ { <comma>
<window definition> }... ]
<window definition> ::= <new window name> AS <window
specification>
<new window name> ::= <window name>
<window specification> ::= <left paren> <window specification
details> <right paren>
<window specification details> ::=
[ <existing window name> ] [ <window partition clause> ] [
<window order clause> ] [ <window frame clause> ]
<existing window name> ::= <window name>
<window partition clause> ::= PARTITION BY <window partition
column reference list>
<window partition column reference list> ::= <window partition
column reference> [ { <comma> <window partition column reference> }... ]
<window partition column reference> ::= <column reference> [
<collate clause> ]
<window order clause> ::= ORDER BY <sort specification list>
<window frame clause> ::= <window frame units> <window frame
extent> [ <window frame exclusion> ]
<window frame units> ::= ROWS | RANGE
<window frame extent> ::= <window frame start> | <window frame
between>
<window frame start> ::= UNBOUNDED PRECEDING | <window frame
preceding> | CURRENT ROW
<window frame preceding> ::= <unsigned value specification>
PRECEDING
<window frame between> ::= BETWEEN <window frame bound 1> AND
<window frame bound 2>
<window frame bound 1> ::= <window frame bound>
<window frame bound 2> ::= <window frame bound>
<window frame bound> ::=
<window frame start>
| UNBOUNDED FOLLOWING
| <window frame following>
<window frame following> ::= <unsigned value specification>
FOLLOWING
<window frame exclusion> ::=
EXCLUDE CURRENT ROW
| EXCLUDE GROUP
| EXCLUDE TIES
| EXCLUDE NO OTHERS
> ---------------------------(end of
broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2006-08-24 18:37:43 | Re: SQL:2003 Window Functions for postgresql 8.3? |
Previous Message | AgentM | 2006-08-24 18:26:53 | Re: SQL:2003 Window Functions for postgresql 8.3? |