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)