Thread: Q: select query

Q: select query

From
grk@usa.net (G. Ralph Kuntz, MD)
Date:
I am trying to write a query to select some rows.

My data consists of rows like this
  1       a  1       b  1       c  2       d  3       e  3       f  ...

I would like to select the second and subsequent rows where the first
column is the same:
  1       b  1       c  3       f

in other words, all but the first row of a group.

Any ideas?

Thanks, Ralph


Re: Q: select query

From
Rod Taylor
Date:
> in other words, all but the first row of a group.

Interesting question. The below should work and be quick so long as
there is a UNIQUE(col1, col2) constraint.

SELECT col1    , col2 FROM jWHERE col2 != (SELECT col2                 FROM j AS jsub                WHERE col1 =
j.col1            ORDER BY col2 ASC                LIMIT 1); 

Re: Q: select query

From
Manfred Koizar
Date:
On 12 Sep 2003 10:58:45 -0700, grk@usa.net (G. Ralph Kuntz, MD) wrote:
>I would like to select the second and subsequent rows where the first
>column is the same:
>
>   1       b
>   1       c
>   3       f
>
>in other words, all but the first row of a group.

all =    SELECT * FROM t;

but =    EXCEPT

the first row of a group =SELECT i, min(x) FROM t GROUP BY i;

or (if there are more columns)SELECT DISTINCT ON(i) * FROM t ORDER BY i, x;

Putting it together:
SELECT i, x FROM t EXCEPT (SELECT i, min(x) FROM t GROUP BY i);

or
SELECT * FROM t EXCEPT (SELECT DISTINCT ON(i) ...);

ServusManfred