嗨,我有这张桌子
create table process(process_id serial, state text);
insert into process(process_id, state) values(1, 'DONE'),
(2, 'DONE'),
(3, 'DONE'),
(4, 'FAILED');
现在如果你跑:
select distinct(state),count(*) a from process group by state;
您将得到两行:失败1,完成3
我想要的是得到失败进程的百分比,即=失败/(失败+完成)。
最佳答案
Postgres中的一种方法使用avg()
:
select avg( (state = 'FAILED')::int )
from process;
如果您有其他状态,可以添加
where state in ('FAILED', 'DONE')
。关于sql - 如何获得符合PostgreSQL标准的行的百分比?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45878909/