【发布时间】:2021-12-23 08:26:18
【问题描述】:
我在查询时遇到问题,希望得到您的反馈。
我需要添加一个“百分比”列(四舍五入到小数点后 2 位),用于计算每种动物类型和大小组合的总数百分比。
这些是从动物表中选择的列:
- 动物类型(按字母顺序排序)
- 尺寸(排序顺序:小、中、大)
- 总计
这是我的摘要查询代码:
SELECT animaltype, size, SUM(total) AS Total FROM animals
WHERE sponsored_animalid IS NULL
GROUP BY animaltype, size
ORDER BY animaltype, size DESC;
- 需要为每种动物类型和大小组合计算百分比。
示例公式例如(动物类型:鸟,大小:小):
ROUND((Total for Bird(Small) / SUM of total for all parents (small, medium, large) * 100) , 2) = 12.55%(参考上面的示例输出)
我不想创建新的表/视图,只需要一种方法来修复查询输出的百分比列。
感谢您的帮助。
如果有人可以帮我计算动物类型和大小组合的百分比,请不胜感激。
【问题讨论】:
-
使用此代码有助于计算列总数的百分比,但它无助于计算每个动物和大小组合的百分比,如示例输出表代码所示:SELECT animaltype, size, SUM(total) AS total , ROUND(( SUM(total) * 100 / SUM( SUM(total)) OVER ()),2) 来自动物的百分比 WHERE spired_animalid 为 NULL GROUP BY 动物类型,大小 ORDER BY 动物类型,大小 DESC;感谢一些反馈。谢谢!
-
欢迎来到 SO 社区。请花几分钟时间拨打Tour 并查看How to Ask。特别是发布表定义 (ddl) 和示例数据,作为文本 - 无图像,甚至更好地创建 fiddle 以及该数据的预期结果。
标签: sql postgresql percentage summary