On Mon, Aug 10, 2009 at 12:58 PM, Brian Candler<B.Candler@pobox.com> wrote:
> On Tue, Aug 11, 2009 at 12:05:28AM +0530, Anand Chitipothu wrote:
>> I'm trying to think of couchdb equivalent of the following SQL query.
>>
>> SELECT author, count(*) as count FROM changes GROUP BY author ORDER BY count
>
> Being cheeky, I will point out that you can probably implement this in a
> _list view. But this is probably less efficient than just downloading the
> result set to the client and sorting it there.
>
> I'm assuming you know that you can get each author's count using a reduce
> view, and then query that with group=true, so you'll already have calculated
> authors and counts. It's just the final sort by count which remains to be
> done client-side.
>
The reason why CouchDB can't do the sorting by value inside itself is
that on a multi node cluster, an individual couch can't know the
global ordering. We have a commitment to ensuring that CouchDB's API
remains invariant regardless of the size of the underlying cluster.
So you basically have to copy the cluster-wide reduce values to an
intermediate storage mechanism (which itself can be a cluster) before
you can sort them by value.
Cheers,
Chris
> Regards,
>
> Brian.
>
--
Chris Anderson
http://jchrisa.net
http://couch.io
|