From: | ivan marchesini <marchesini(at)unipg(dot)it> |
---|---|
To: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: how to solve this problem |
Date: | 2006-04-14 15:40:53 |
Message-ID: | 1145029254.4738.9.camel@geologia5.agora.ing.unipg.it |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Thank you very much!!!
your suggestion seems really usefull!! I will try it very soon!!!
ivan
Il giorno gio, 13/04/2006 alle 11.34 -0700, Steve Crawford ha scritto:
> > I have a table where there are 20 columns named
> > vinc1, vinc2, vinc3, vinc4, etc....
> >
> > the values contained into each column are simply 1 or 0 (each column is
> > dichotomic)
> > 1 means presence
> > 0 means absence
> >
> > I would obtain a column (new_column) containg the name of the columns,
> > comma separated, where the value is = 1
> >
> > for example:
> >
> > vinc1 vinc2 vinc3 vinc4 new_column
> > 1 0 1 0 vinc1,vinc3
> > 0 0 0 1 vinc4
> > 0 1 1 1 vinc2,vinc3,vinc4
> >
> > can someone help me to find the best way to obtain this result???
> > thank you very much
>
> Here's a brute-force method. Maybe someone else has a more elegant way.
> More info on the nature of your data and what you are trying to obtain
> from it would help in finding such elegance.
>
> select
> substr(
> case when vinc1 = 1 then ',vinc1' else '' ||
> case when vinc2 = 1 then ',vinc2' else '' ||
> ...
> case when vinc20 = 1 then ',vinc20' else ''
> ,2) as new_column ...
>
> As to the binary representation mentioned elsewhere, the idea is that
> you can view vinc1-vinc20 as bits in a binary number equal to vinc1 +
> 2*vinc2 + 4*vinc3 + 8*vinc4...2^19*vinc20. Whether or not this is useful
> depends on what you are trying to do.
>
> Cheers,
> Steve
>
--
Ivan Marchesini
Department of Civil and Environmental Engineering
University of Perugia
Via G. Duranti 93/a
06125
Perugia (Italy)
e-mail: marchesini(at)unipg(dot)it
ivan(dot)marchesini(at)gmail(dot)com
tel: +39(0)755853760
fax: +39(0)755853756
jabber: geoivan73(at)jabber(dot)org
From | Date | Subject | |
---|---|---|---|
Next Message | Luckys | 2006-04-15 09:56:08 | Re: how to solve this problem |
Previous Message | Achilleus Mantzios | 2006-04-14 11:27:41 | Re: Kernel 2.4->2.6 upgrade results in PANIC: could not locate a |