想在postgresql中创建用户定义的聚合函数

时间:2017-08-24 11:48:32

标签: aggregate-functions postgresql-9.4

我想创建一个聚合函数,该函数将返回相同的值,该值通常以int或bigint类型的值传递给它。

这样做的目的是当我尝试分组时,它要求我将值放在聚合函数中,因为一个值已经在组中,我希望我不要想把另一个放进去。

Postgres版本9.4

执行以下查询以获得正确的结果:

select org_id,
case when add_pos_or_zero(status_id)=4 then count(id) else 0 end as closed,
case when add_pos_or_zero(status_id)!=4 then count(id) else 0 end as open ,
case when add_pos_or_zero(status_id) in (1,2,4,5) then count(id) else 0 end as created
from cloudschema.ticket_mstr  where 
to_char(to_timestamp(created_on/1000),'dd/MM/yyyy')='23/08/2017' and is_active is true group BY org_id;

请参阅小提琴:SQL FIDDLE

我想要这种形式的结果:

orgid closed open created
 891     1    2    3
 912     0    1    1
 918     0    1    1

0 个答案:

没有答案