根据字段 SQL 的总和计算



我有下表:

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

最新更新