SQL计数操作
我有两个查询使用同一个表:total,我需要计算结果的百分比。(博士后9.4) 例如:SQL计数操作,sql,postgresql,Sql,Postgresql,我有两个查询使用同一个表:total,我需要计算结果的百分比。(博士后9.4) 例如: Total count no筛选器返回100行 字段1为False的总计返回10行 我需要得到10%,即满足特定条件的百分比。100/10 在SQL中,在这种情况下计算它的最佳方法是什么 SELECT * FROM ( SELECT COUNT(*) FROM total / SELECT COUNT(*) FROM total WHERE field1 = False ) 您可以使用case表达式使
- Total count no筛选器返回100行
- 字段1为False的总计返回10行
SELECT * FROM (
SELECT COUNT(*) FROM total /
SELECT COUNT(*) FROM total WHERE field1 = False )
您可以使用case表达式使用条件聚合
您可以使用case表达式使用条件聚合如果
field1
列是BOOLEN
类型,还有另一种很酷的方法
您可以像这样使用SUM
函数
SELECT SUM((NOT field1)::INT) * 100/SUM(1) percentage
FROM total
sqlfiddle:如果
field1
列是BOOLEN
类型,还有另一种很酷的方法
您可以像这样使用SUM
函数
SELECT SUM((NOT field1)::INT) * 100/SUM(1) percentage
FROM total
SQLFIDLE:我会这样做:
select avg(case when field = false then 100.0 else 0 end) as percentage
from total;
假设字段
不是空
,您还可以执行以下操作:
select avg( (not field)::int ) * 100 as percentage
from total;
我会这样做:
select avg(case when field = false then 100.0 else 0 end) as percentage
from total;
假设字段
不是空
,您还可以执行以下操作:
select avg( (not field)::int ) * 100 as percentage
from total;
小心整数除法。小心整数除法。