gpt4 book ai didi

sql - 根据 SQL Server 中的总列值计算每行的百分比值

转载 作者:行者123 更新时间:2023-12-05 08:55:30 27 4
gpt4 key购买 nike

我有如下表格。我需要根据总列值计算每行的百分比值。如何使用 SQL 查询实现此目的?

enter image description here

我期待这样的结果:

enter image description here

请找到下面的简单计算得到结果。

(100 / 1000) * 100 = 10

第一个值。

(row value / grand total) * 100

你能帮我用 SQL 查询得到 10 作为第一行值的结果吗?提前致谢。

最佳答案

您可以使用 SUM() 函数作为整个表的分析函数来计算总和。然后,只需将每个区域的成本除以该总和即可获得百分比。

SELECT
Region,
Cost,
100 * Cost / SUM(Cost) OVER () AS Percentage
FROM yourTable

请注意,您可以还使用非相关子查询来查找总成本,例如

(SELECT SUM(Cost) FROM yourTable)

但如果没有其他原因,我给你的第一个版本可能会比它只需要运行一个查询更好。

输出:

enter image description here

此处演示:

Rextester

更新:

对于您更新的查询,我可能会使用以下内容:

WITH cte AS (
SELECT
Region,
SUM(Cost) AS sum_cost
FROM yourTable
GROUP BY Region
)

SELECT
Region,
sum_cost,
100 * sum_cost / SUM(sum_cost) OVER () AS Percentage
FROM cte;

Demo

关于sql - 根据 SQL Server 中的总列值计算每行的百分比值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706053/

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