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
---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?
http://archives.postgresql.org