Counting booleans for two columns

From: Rikard Bosnjakovic <rikard(dot)bosnjakovic(at)gmail(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: Counting booleans for two columns
Date: 2009-11-20 14:17:54
Message-ID: d9e88eaf0911200617l76ba1ba3s83a440321f7390f5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

I have a table with values similiar to this (I have reduced the number
of rows from the actual table):

played | stats_exists
--------+--------------
t | t
t | f
t | t
t | t
f | t
t | t
t | f

What I want to do is to count the number of "t" in each column and
return the values (in two separate columns). The only thing I've
managed to do is doing a UNION, but this gives me the (correct)
results in one column only, I want the results in two (I need to
distinguish between the numbers). I did like this:

SELECT count(played) AS played
FROM matches
WHERE origin=1 AND played AND NOT training AND match_date > '2009-08-01'
UNION
SELECT count(stats_exists) AS stats
FROM matches
WHERE origin=1 AND stats_exists AND NOT training AND match_date > '2009-08-01';

with this result:

played
--------
12 <-- stats
13 <-- played
(2 rows)

How can I rewrite the SELECT so I get two values in separate columns
instead of two rows?

--
- Rikard

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Thom Brown 2009-11-20 14:30:52 Re: Counting booleans for two columns
Previous Message Jasen Betts 2009-11-20 09:50:48 Re: My second PL/pgSQL function - minor problem