Received: from localhost.localdomain (postgresql.org [64.49.215.8]) by localhost (Postfix) with ESMTP id 8846C476584 for ; Mon, 20 May 2002 12:29:45 -0400 (EDT) Received: from beamish.nsd.ca (unknown [205.150.156.194]) by postgresql.org (Postfix) with ESMTP id 4D7A247614B for ; Mon, 20 May 2002 12:00:14 -0400 (EDT) Received: (from smap@localhost) by beamish.nsd.ca (8.9.3/8.9.3) id MAA03898; Mon, 20 May 2002 12:00:16 -0400 X-Authentication-Warning: beamish.nsd.ca: smap set sender to using -f Received: from reddog.nsd.ca(192.168.101.30) by beamish.nsd.ca via smap (V2.1/2.1+anti-relay+anti-spam) id xma003896; Mon, 20 May 02 12:00:02 -0400 Received: from nsd.ca (jllachan-linux.nsd.ca [192.168.101.148]) by reddog.nsd.ca (8.8.7/8.8.7) with ESMTP id MAA27780; Mon, 20 May 2002 12:00:02 -0400 Message-ID: <3CE91F49.DC7B73C8@nsd.ca> Date: Mon, 20 May 2002 12:07:37 -0400 From: Jean-Luc Lachance X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.9-31 i686) X-Accept-Language: en MIME-Version: 1.0 To: Dan MacNeil , pgsql-sql Subject: Re: count(boolean) References: <001d01c1ff3f$d7d86470$b11a9318@prometheus> <3CE9117F.183B58EE@nsd.ca> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Archive-Number: 200205/205 X-Sequence-Number: 7840 Actually, "count" should be "sum" SELECT question_id AS id, sum( case when value then 1 else 0 end) as count_true, sum( case when value then 0 else 1 end) as count_false FROM answers_boolean GROUP BY question_id; I wrote: > > Dan, > > Try: > > SELECT > question_id AS id, > count( case when value then 1 else 0 end) as count_true, > count( case when value then 0 else 1 end) as count_false > FROM > answers_boolean > GROUP BY > question_id; > > jll > > Dan MacNeil wrote: > > > > I have a table answers_boolean: > > > > question_id | integer | not null > > evaluation_id | integer | not null > > value | boolean | > > > > I'd like output in the form: > > > > question_id, count_true, count_false > > > > ....where count_true is the number of questions answered "true" > > > > SELECT > > question_id AS id, value AS val , count(value) AS cnt > > FROM > > answers_boolean > > GROUP BY > > question_id,value; > > > > gives me: > > id | val | cnt > > ----+-----+----- > > 2 | f | 3 > > 2 | t | 3 > > 3 | f | 2 > > 3 | t | 4 > > > > ...which is sorta what I want. > > > > I've looked through the docs & archive but haven't found the answer. > > > > TIA > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 3: if posting/reading through Usenet, please send an appropriate > > subscribe-nomail command to majordomo@postgresql.org so that your > > message can get through to the mailing list cleanly > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)