From: | "Jim Buttafuoco" <jim(at)contactbda(dot)com> |
---|---|
To: | "James Moliere" <jmoliere(at)ucsd(dot)edu>, <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: create aggregate function 'count_bool( column_name, boolean )' |
Date: | 2006-07-07 14:54:07 |
Message-ID: | 20060707145216.M76744@contactbda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
James,
I know Postgresql doesn't have 2 arg aggregate functions. what you could do is the following (untested)
select distict product_id,
sum(case when purchased then 1 else 0 end) as purchased,
sum(case when was_selected then 1 else 0 end) as was_selected
from some_table
group by product_id;
Jim
---------- Original Message -----------
From: "James Moliere" <jmoliere(at)ucsd(dot)edu>
To: <pgsql-sql(at)postgresql(dot)org>
Sent: Fri, 7 Jul 2006 06:53:45 -0700
Subject: [SQL] create aggregate function 'count_bool( column_name, boolean )'
> Hello,
> I'd like to create a function called count_bool( column_name, boolean ) in
> PostgreSQL.
>
> this function is similar to the count( column_name ) function but will only
> count the trues or falses based on the other input parameter boolean. e.g.
> if you pass in a 'true', all the trues will be counted but not the falses --
> it's the same but opposite if the 'false' was passed in.
>
> I'd like this aggregate function to be developed with the SQL language
> instead of 'C' (for maintenance reasons). From the surface, it appears to
> be an incredibly simple job only to find that it's difficult.
>
> In some respects, I can't believe this function doesn't exist in SQL
>
> so now I can create the statement
> select distict product_id, count_bool(purchased, true),
> count_bool(was_selected, true) from some_table group by product_id;
>
> instead of breaking the query into 3 seperate queries
>
> select distict product_id from some_table;
> select count(purchased) from product_id where purchased = true;
> select count(was_selected) from some_table where was_selected = true;
>
> Am I missing a detail with SQL based aggregate function development?
>
> Any help would be appreciated.
>
> Thanks!
------- End of Original Message -------
From | Date | Subject | |
---|---|---|---|
Next Message | Rodrigo De Leon | 2006-07-07 15:55:17 | Re: SELECT substring with regex |
Previous Message | Chris Browne | 2006-07-07 14:33:48 | Re: Alternative to serial primary key |