Re: How to count ones in a bit string? - Mailing list pgsql-novice

From Michael Wood
Subject Re: How to count ones in a bit string?
Date
Msg-id CAP6d-HXbsJ-2rQDT2AU+ooLd-jrL1cvHpOJYJ92jMYUyqJvFpQ@mail.gmail.com
Whole thread Raw
In response to Re: How to count ones in a bit string?  (Richard Broersma <richard.broersma@gmail.com>)
List pgsql-novice
On 21 February 2012 17:44, Richard Broersma <richard.broersma@gmail.com> wrote:
> There are probably fast better ways. But this is one way:
>
> postgres=> SELECT LENGTH( REPLACE( CAST( B'101000000000000000000010'
> AS TEXT ), '0', ''));
>  length
> --------
>      3

That seems like a good way to do it, unless you need to do this on a
lot of data and need it to be very fast or something.

If so, then maybe have a look at this:

http://en.wikipedia.org/wiki/Hamming_weight#Efficient_implementation

and maybe even this:

http://en.wikipedia.org/wiki/Hamming_weight#Processor_support

and implement it as a user defined function in C.

--
Michael Wood <esiotrot@gmail.com>

pgsql-novice by date:

Previous
From: Richard Broersma
Date:
Subject: Re: How to count ones in a bit string?
Next
From: Matthias Leopold
Date:
Subject: return values from plperl function