我如何计算百分比列
How can I calculate percentage column
抱歉,我不得不调整我的问题。
使用 SQL Server 2016,我将查询的汇总结果放入新的 table,如下所示:
Product
Total Sales
Percentage
Product A
596.42
0.00
Product A
127.55
0.00
Product A
736.83
0.00
Product B
379.51
0.00
Product B
205.95
0.00
Product C
905.99
0.00
我添加了 Percentage
列,因此我可以使用基于每个产品的总销售额的百分比更新该列。
例如,我试图从上述 table 中获得以下百分比结果。
Product
Total Sales
Percentage
Product A
596.42
40.83
Product A
127.55
8.73
Product A
736.83
50.44
Product B
379.51
64.82
Product B
205.95
35.18
Product C
905.99
100.00
如何使用 UPDATE
语句实现此目的?
这可能取决于您的 DBMS,如果支持,您可以使用 OVER()
汇总所有行
SELECT
TOTAL_SALES / SUM(TOTAL_SALES) OVER() AS PERCENT_OF_SALES
FROM TABLE
如果不受支持,您可以使用子查询
SELECT
TOTAL_SALES / (SELECT SUM(TOTAL_SALES) FROM TABLE) AS PERCENT_OF_SALES
FROM TABLE
对于取决于您的 DBMS 的更新语句,您可以执行类似
的操作
DECLARE @d INT = (SELECT SUM(TOTAL_SALES) FROM TABLE)
UPDATE TABLE
SET PERCENT_OF_SALES = SALES / @d
您可以像这样更新 Percentage
列:
update tbl
set Percentage = ([Total Sales]/(select sum([Total Sales]) from tbl)) * 100
与Mysql :
SELECT SUM(total) FROM test INTO @tot;
UPDATE test SET percent = 100 * total / @tot ;
DBFiddle 示例:https://www.db-fiddle.com/f/hERoW3LajH9tMhjQJUKHER/1
抱歉,我不得不调整我的问题。
使用 SQL Server 2016,我将查询的汇总结果放入新的 table,如下所示:
Product | Total Sales | Percentage |
---|---|---|
Product A | 596.42 | 0.00 |
Product A | 127.55 | 0.00 |
Product A | 736.83 | 0.00 |
Product B | 379.51 | 0.00 |
Product B | 205.95 | 0.00 |
Product C | 905.99 | 0.00 |
我添加了 Percentage
列,因此我可以使用基于每个产品的总销售额的百分比更新该列。
例如,我试图从上述 table 中获得以下百分比结果。
Product | Total Sales | Percentage |
---|---|---|
Product A | 596.42 | 40.83 |
Product A | 127.55 | 8.73 |
Product A | 736.83 | 50.44 |
Product B | 379.51 | 64.82 |
Product B | 205.95 | 35.18 |
Product C | 905.99 | 100.00 |
如何使用 UPDATE
语句实现此目的?
这可能取决于您的 DBMS,如果支持,您可以使用 OVER()
汇总所有行
SELECT
TOTAL_SALES / SUM(TOTAL_SALES) OVER() AS PERCENT_OF_SALES
FROM TABLE
如果不受支持,您可以使用子查询
SELECT
TOTAL_SALES / (SELECT SUM(TOTAL_SALES) FROM TABLE) AS PERCENT_OF_SALES
FROM TABLE
对于取决于您的 DBMS 的更新语句,您可以执行类似
的操作DECLARE @d INT = (SELECT SUM(TOTAL_SALES) FROM TABLE)
UPDATE TABLE
SET PERCENT_OF_SALES = SALES / @d
您可以像这样更新 Percentage
列:
update tbl
set Percentage = ([Total Sales]/(select sum([Total Sales]) from tbl)) * 100
与Mysql :
SELECT SUM(total) FROM test INTO @tot;
UPDATE test SET percent = 100 * total / @tot ;
DBFiddle 示例:https://www.db-fiddle.com/f/hERoW3LajH9tMhjQJUKHER/1