Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 获取指定行集之间的平均值_Visual Studio 2012_Reporting Services_Ssrs 2008 R2 - Fatal编程技术网

Visual studio 2012 获取指定行集之间的平均值

Visual studio 2012 获取指定行集之间的平均值,visual-studio-2012,reporting-services,ssrs-2008-r2,Visual Studio 2012,Reporting Services,Ssrs 2008 R2,各位,我正在使用Visual Studio 2012构建报告 我希望能够对一组特定行之间的值进行平均 到目前为止,我得到的是这样的东西 =(Count(Fields!SomeField.Value))*.1 及 我想使用这两个值来获得字段的平均值!SomeField.Value介于这些值和行数之间。基本上,我删除了顶部和底部10%的数据,并将中间的80%进行平均。也许有更好的办法?谢谢你的帮助 在SQL本身中处理它。 方法1: 使用NTILE功能。通过此操作了解有关NTILE的更多信息 试试这

各位,我正在使用Visual Studio 2012构建报告

我希望能够对一组特定行之间的值进行平均

到目前为止,我得到的是这样的东西

=(Count(Fields!SomeField.Value))*.1

我想使用这两个值来获得
字段的平均值!SomeField.Value
介于这些值和行数之间。基本上,我删除了顶部和底部10%的数据,并将中间的80%进行平均。也许有更好的办法?谢谢你的帮助

在SQL本身中处理它。 方法1: 使用
NTILE
功能。通过此操作了解有关
NTILE
的更多信息

试试这样的

WITH someCTE AS (
 SELECT SomeField, NTILE(10) OVER (ORDER BY SomeField) as percentile
 FROM someTable)

SELECT AVG(SomeField) as myAverage 
FROM someCTE WHERE percentile BETWEEN 2 and 9
如果你的数据集更大

WITH someCTE AS (
 SELECT SomeField, NTILE(100) OVER (ORDER BY SomeField) as percentile
 FROM someTable)

SELECT AVG(SomeField) as myAverage 
FROM someCTE WHERE percentile BETWEEN 20 and 90
方法2:

SELECT Avg(SomeField) myAvg
From someTable
Where SomeField NOT IN
(
SELECT Top 10 percent someField From someTable order by someField ASC
UNION ALL
SELECT Top 10 percent someField From someTable order by someField DESC
)
注意: 测试边界条件以确保你得到了你需要的。如果需要,调整上面的sql代码

对于NTILE:确保NTILE参数小于(或等于)表中的行数

SELECT Avg(SomeField) myAvg
From someTable
Where SomeField NOT IN
(
SELECT Top 10 percent someField From someTable order by someField ASC
UNION ALL
SELECT Top 10 percent someField From someTable order by someField DESC
)