Sql SSRS-获取记录范围内的组总数

Sql SSRS-获取记录范围内的组总数,sql,sql-server,reporting-services,ssrs-2008,Sql,Sql Server,Reporting Services,Ssrs 2008,抱歉,如果我没有解释这一点,那么报告服务不是我的专业领域。我相信这应该是一个简单的(希望如此) 我有一个非常简单的报告,其中有一个名为“group1”的行组,然后在该组中我只有一些记录(包括一个数字字段)。在“group1”标题中,我已将数字字段记录的总和放入其中。我现在想做的是计算每个数字字段占组总数的百分比。例如,我现在有下表 ----------------------------------------- - GROUP 1 100 ---

抱歉,如果我没有解释这一点,那么报告服务不是我的专业领域。我相信这应该是一个简单的(希望如此)

我有一个非常简单的报告,其中有一个名为“group1”的行组,然后在该组中我只有一些记录(包括一个数字字段)。在“group1”标题中,我已将数字字段记录的总和放入其中。我现在想做的是计算每个数字字段占组总数的百分比。例如,我现在有下表

-----------------------------------------
- GROUP 1                    100     
-----------------------------------------
- Field 1 | sadasaadasdads | 10 | 10% <== This is what I am trying to calculate
-----------------------------------------
- Field 2 | sadasaadasdads | 20 | 20%
-----------------------------------------
- Field 3 | sadasaadasdads | 50 | 50%
-----------------------------------------
- Field 4 | sadasaadasdads | 20 | 20%
-----------------------------------------
-----------------------------------------
-第一组100
-----------------------------------------

-字段1 | sadasadasds | 10 | 10%对于您的数据集,这是您要查找的内容:

select field1, field2, value, 
       100.0 * value / SUM(value) OVER(PARTITION BY 1) 
                      /* the SUM gets the total for the whole dataset. If actually 
                         have groups, yous should do PARTITION BY GroupField 
                       */
from yourtable

现在,您只需处理格式设置。

+1这是正确的方法。尽管您为什么要在(1分区)上添加
,但在
OVER()
上是否有性能提升,或者只是为了澄清一下?您不能只做SUM(value),因为查询中没有分组。按1划分会得到所有行的和,就是这样,所有行的1都是1。哦,我知道,我表达的不对。我的意思是,你可以这样做:
SUM(value)OVER()
,我只是想知道通过添加
SUM(value)OVER(PARTITION by 1)
是否有性能提升,或者只是为了让查询更容易理解哦,好的。从性能角度来看,这并不重要。出于教学目的,我选择离开了
分区方式
选项,这表明如果您有组,就有一个选项。谢谢,我不确定SQL是否比通过报告工具更好。