Martijn van Oosterhout wrote:
On Tue, Sep 13, 2005 at 12:15:21PM -0700, Ben wrote:

Oracle has a very handy function called first_value, which can be used to turn a set like this:


Look at DISTINCT ON ()


Does postgres have something equivalent, or, even better, is there a reasonable way to express this in standard SQL?


In standard SQL, not really, which is why it's an extention...

No?    It seems this is similar

SELECT a,b
FROM ( SELECT a,b,
        RANK() OVER (
                PARTITION BY a
                ORDER BY b
        ) rank
        FROM my_table )
WHERE rank = 1
ORDER BY a, rank DESC;

which I think is standard sql-99 with the sql-99 olap extention.

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to