繁体   English   中英

结合pivot表计算比例

[英]Combine the pivot table to calculate the ratio

在 SQL 上,我有一个 pivot 表,如:

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

我想要以下内容:

col1 ratio
A     90% 
B     80%

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

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

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

一些数据库做 integer 除法,所以如果列是整数,你可能想要:

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

然后,您不需要使用派生表。 您可以 go 到基表并使用公式聚合:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM