我的数据库中有两个表(A& B)(c)。两个表都包含两个coulmns,如下所示
column name Datatype
eventtime timestamp without time zone
serialnumber numeric
表A包含每天生产的产品总数(良好和降级 - 但在这些表中,它们未定义为受影响/降级)。表B仅包含降级产品的总数。
我想使用降级产品的百分比制作质量过程控制图表w.r.t生产的产品总数(例如,使用序列号加入)。
有人可以告诉我如何获得每天(也是每小时)的百分比值
答案 0 :(得分:1)
使用date_trunc()
按期望的时间段对行进行分组,例如:
select
a.r_date::date date,
downgraded,
total,
round(downgraded::numeric/total* 100, 2) percentage
from (
select date_trunc('day', eventtime) r_date, count(*) downgraded
from b
group by 1
) b
join (
select date_trunc('day', eventtime) r_date, count(*) total
from a
group by 1
) a
using (r_date)
order by 1;
date | downgraded | total | percentage
------------+------------+-------+------------
2015-05-05 | 3 | 4 | 75.00
2015-05-06 | 1 | 4 | 25.00
(2 rows)