SQL - 在计算中使用With Rollup数据

时间:2015-09-09 18:04:10

标签: sql sql-server-2008

我的查询结果如下所示。最后一行是With Rollup的结果。

Product    Total
5300          1
5600         13
5400         66
5700        200
NULL        280

有没有办法在计算中使用汇总数据(280)来查找总数的百分比?所以我明白了:

Product    Total     %
5300          1     3%
5600         13     5%
5400         66    22%
5700        200    72%
NULL        280    

2 个答案:

答案 0 :(得分:0)

使用CTE应该很容易。现在取决于你的输出有多严格。

SQL FIDDLE DEMO

WITH total as (
     SELECT Total
     FROM sumarize
     WHERE Product IS NULL
 )
 SELECT S.*, (S.Total * 1.0 / t.Total)*100 as porcent
 FROM sumarize S, total t

答案 1 :(得分:0)

使用像这样的窗口函数

SELECT (Total/(SUM(Total) OVER(PARTITION BY Product)))*100 AS Percent