| From: | Sean Davis <sdavis2(at)mail(dot)nih(dot)gov> | 
|---|---|
| To: | Stephen Quinney <stephen(dot)quinney(at)computing-services(dot)oxford(dot)ac(dot)uk> | 
| Cc: | pgsql-sql(at)postgresql(dot)org | 
| Subject: | Re: Combining values in a column | 
| Date: | 2005-04-15 10:12:11 | 
| Message-ID: | e1812e3e63292f91f9285e81126ce795@mail.nih.gov | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
See below for creating aggregates:
http://www.postgresql.org/docs/current/static/xaggr.html
But, there is a useful function built-in, bit_and, that does what you  
want:
http://www.postgresql.org/docs/current/static/functions- 
aggregate.html#FUNCTIONS-AGGREGATE-TABLE
create table testint (
	myint int
);
CREATE TABLE
insert into testint values (31);
INSERT 428988938 1
insert into testint values (511);
INSERT 428988939 1
select bit_and(myint) from testint;
  bit_and
---------
       31
(1 row)
On Apr 15, 2005, at 5:22 AM, Stephen Quinney wrote:
> I have a query which returns a single column of integers which I want
> to combine together with &, "bitwise AND". Basically it's a simple
> list of access levels that a user might have and I want to merge the
> list into one value. There can be zero, one or more values in the list
> so I have to be able to cope with the no-results .
>
> For example
>
>  access
> --------
>      31
>     511
>
> Would lead to 31 & 511 which gives 31.
>
> I guess really this can lead to the more generic question. How do I
> apply a general function to combine the values, if I, for example,
> wanted to write my own aggregate function like sum?
>
> Thanks in advance,
>
> Stephen Quinney
>
>
>
>
>
> ---------------------------(end of  
> broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dinesh Pandey | 2005-04-15 12:47:49 | send mail from Postgres using PLTCLU language. | 
| Previous Message | Stephen Quinney | 2005-04-15 09:22:27 | Combining values in a column |