我有下表:
Item tTotal
------------------
A 20
B 10
C 5
我想有一个带有新列的 tsql,例如:
Item tTotal oPercent
--------------------------------
A 20 57.14
B 10 28.58
C 5 13.3
oPercent
字段计算为:
([tTotal] / [SUM(tTotal)]) * 100
有人对此有想法吗?
真的很感激。
谢谢。
使用分析函数,我们可以在表上的单次传递中做到这一点,而无需正式的子查询:
SELECT
Item,
tTotal,
100.0 * tTotal / SUM(tTotal) OVER () AS oPercent
FROM yourTable;
演示
你在下面使用查询
DECLARE @TSum INT=0
SELECT @TSum=SUM(tTotal) FROM tablename
SELECT Item,tTotal,((tTotal / @TSum) * 100) AS oPercent FROM tablename
您也可以
使用CROSS JOIN
,因为它只会生成一行
SELECT
Item, tTotal,
100.00 * tTotal/ a.total AS oPercent
FROM table
CROSS JOIN (SELECT SUM(tTotal) total FROM table)a