Postgresql 基于postgres中的布尔值计数的每行平均值

Postgresql 基于postgres中的布尔值计数的每行平均值,postgresql,psql,Postgresql,Psql,是否可以找到按某些条件分组的列中多行的平均值,但平均值不是数字值,实际上是特定布尔条件下的另一个计数: select count(commit) from table_x where contains_bug = 'True' group by project name_name; 这将返回每个项目的风险提交数 select count(commit) from table_x group by project name_name; 这将返回每个项目的提交总数 我试图通过以下方式找到每个项目

是否可以找到按某些条件分组的列中多行的平均值,但平均值不是数字值,实际上是特定布尔条件下的另一个计数:

select count(commit) from table_x where contains_bug = 'True' group by project name_name;
这将返回每个项目的风险提交数

select count(commit) from table_x group by project name_name;
这将返回每个项目的提交总数

我试图通过以下方式找到每个项目的平均风险承诺:

Select AVG(select count(commits)from table_x where contains_bug = 'True') group by project_name;
它不起作用

谢谢

我终于得到了答案:)

您可以使用AVG(但需要先转换为INT):

select project_name, to_char(count(nullif(contains_bug = 'True', false))/count(*)::float*100, '99.99') as percentage from table_x group by project_name;
SELECT AVG(CAST(contains_bug = 'True' AS int)) FROM table_x GROUP BY project_name;