From: | "D(dot) Stimits" <stimits(at)comcast(dot)net> |
---|---|
To: | |
Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: PL/PGSQL for permutations? |
Date: | 2003-10-09 09:37:39 |
Message-ID: | 3F852C63.20002@comcast.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Joe Conway wrote:
> D. Stimits wrote:
>
> > table field pair. E.G., if I had in table 'one':
> > left right
> > ==== =====
> > a b
> > a c
> > b d
> >
> > ...then I'd need a list of a, b, c, d, and produce a new table:
> > left right
> > ==== =====
> > a b
> > a c
> > a d
> > b a
> > b c
> > b d
> > c a
> > c b
> > c d
> > d a
> > d b
> > d c
>
>
> I don't have 7.2 to test on (and you really should upgrade to 7.3.4 if
> possible anyway), but why not:
>
> create table t1(f1 text, f2 text);
> insert into t1 values('a','b');
> insert into t1 values('a','c');
> insert into t1 values('b','d ');
>
> select a, b
> from
> (select distinct f1 as a from t1 union select distinct f2 from t1)
> as ss1,
> (select distinct f1 as b from t1 union select distinct f2 from t1)
> as ss2
> where ss1.a != ss2.b;
> a | b
> ----+----
> a | b
> a | c
> a | d
> b | a
> b | c
> b | d
> c | a
> c | b
> c | d
> d | a
> d | b
> d | c
> (12 rows)
This worked quite well, thank you! I'm still in need though of learning
more about PL/PGSQL, as I have other programming to add (well, I could
do this in C as a PostgreSQL C function, but I want to stick to PL/PGSQL
for the moment). I'm still looking for a non-trivial, in-depth, full
reference to PL/PGSQL. I've found many good introductory or tutorial
type web pages, but not a full and complete reference to PL/PGSQL. The
permutations were themselves the easy part, now each permutation has to
do some non-trivial combinatorics on trigger whenever a change is made.
D. Stimits
From | Date | Subject | |
---|---|---|---|
Next Message | Eric Tan | 2003-10-09 09:49:37 | Re: Does postgresql support HKSCS ? |
Previous Message | Sergey Suleymanov | 2003-10-09 09:07:39 | Locale bug? |