From: | Thom Brown <thombrown(at)gmail(dot)com> |
---|---|
To: | Rikard Bosnjakovic <rikard(dot)bosnjakovic(at)gmail(dot)com> |
Cc: | pgsql-novice(at)postgresql(dot)org |
Subject: | Re: Counting booleans for two columns |
Date: | 2009-11-20 14:30:52 |
Message-ID: | bddc86150911200630i30c07a03hcc9d9c56016fba81@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
2009/11/20 Rikard Bosnjakovic <rikard(dot)bosnjakovic(at)gmail(dot)com>
> 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?
>
>
> Try:
SELECT sum(played::integer), sum(stats_exists::integer)
FROM matches
WHERE origin=1 AND stats_exists AND NOT training AND match_date >
'2009-08-01';
If you're using an old version of PostgreSQL, you might have to use:
SELECT sum(case played when true then 1 else 0 end), sum(case stats_exists
when true then 1 else 0 end)
FROM matches
WHERE origin=1 AND stats_exists AND NOT training AND match_date >
'2009-08-01';
Regards
Thom
From | Date | Subject | |
---|---|---|---|
Next Message | Oliveiros C, | 2009-11-20 14:32:14 | Re: Counting booleans for two columns |
Previous Message | Rikard Bosnjakovic | 2009-11-20 14:17:54 | Counting booleans for two columns |