gpt4 book ai didi

sql - 使用 SQL 计算组大小的比率

转载 作者:行者123 更新时间:2023-12-01 12:26:29 34 4
gpt4 key购买 nike

考虑一个简单的 group by 查询:

select foo, count(*)
from mytable where bar=10
group by foo

这将返回一个具有以下形式的表:
foo | count
----+------
a | 100
b | 200
c | 300

我的目标是使用单个查询获得下表:
foo | count | ratio
----+-------+-------
a | 200 | 18.2
b | 300 | 27.3
c | 600 | 54.5

在实践中,我有更多可能的值 foo因此答案类似于 here 中的那些没有帮助。此外,并不是将比率四舍五入并乘以 100。

这样做的最佳做法是什么?

最佳答案

听起来你想要这样的东西:

select foo, count(*),
count(*) * 100.0 / sum(count(*)) over () as ratio
from mytable
where bar = 10
group by foo;

这并不能保证四舍五入时该值加起来正好是 100%。这是一个更棘手的问题,通常在应用程序层处理得更好。这确实会使用浮点数产生“正确”的答案。

关于sql - 使用 SQL 计算组大小的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39093684/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com