合并数据透视表以计算比率

时间:2020-07-06 21:31:12

标签: sql pivot-table

在SQL上,我有一个数据透视表,例如:

col1 col2 col3
A     0    90
A     1    10
B     0    80
B     1    20

我想要以下内容:

col1 ratio
A     90% 
B     80%

我想到的唯一方法是计算每个col1值的1和0之和。然后将1s的数量除以总计数,但这需要其他子查询。也许还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

使用聚合和算术。假设第二列中有0 / 1个值:

select col1, sum(col2 * col3) / sum(col3)
from t
group by col1;

某些数据库进行整数除法,因此,如果列是整数,则可能需要:

select col1, sum(col2 * col3) * 1.0 / sum(col3)

然后,您不需要使用派生表。您可以转到基表并使用公式进行汇总:

select col1, avg(col3 * 1.0)
from base
group by col1