Re: Doing a conditional aggregate (e.g. count(*) if x=y) in postgres?
От | Jim Buttafuoco |
---|---|
Тема | Re: Doing a conditional aggregate (e.g. count(*) if x=y) in postgres? |
Дата | |
Msg-id | 200705142316.l4ENGGS4010065@contactbda.com обсуждение исходный текст |
Ответ на | Doing a conditional aggregate (e.g. count(*) if x=y) in postgres? (Bryce Nesbitt <bryce1@obviously.com>) |
Список | pgsql-sql |
Use case statement and sum to get a count where status=20... For example Select sum(case when status=20 then 1 else 0 end) as status20, Sum(case when status=30 then 1 else 0 end) as status30 .... -----Original Message----- From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Bryce Nesbitt Sent: Monday, May 14, 2007 6:56 PM To: pgsql-sql@postgresql.org Subject: [SQL] Doing a conditional aggregate (e.g. count(*) if x=y) in postgres? All; Is there a way to get a conditional aggregate? I have this two column view: SELECT count(*) AS count, xx_plan.plan_name FROM xx_membership JOIN xx_account USING (account_id) JOIN xx_plan USING (plan_id)WHERE xx_membership.status = 10 GROUP BY xx_plan.plan_name; And would like to add additional columns (not rows) breaking out "status=20" and "status=30" totals. Is this possible without a stored procedure? ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster
В списке pgsql-sql по дате отправления: