Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
SQL平均值百分比_Sql_Sql Server 2008_Average - Fatal编程技术网

SQL平均值百分比

SQL平均值百分比,sql,sql-server-2008,average,Sql,Sql Server 2008,Average,我有一个SQL Server表\u 1,其中包含名称、子名称和值列 对于每个子名称,我可以通过查询获得值的平均值: 从表1中按子名称分组,选择子名称、平均值作为平均值 我还可以获得每个名称的值之和: 从表_1“按名称分组”中选择名称、sumvalue作为总和 我需要每个名称的每个平均行的百分比,我无法计算出来 编辑:例如百分比-平均值1是a1中总平均值的x% 从表1中选择*如下所示: name subname value a1 val1 20 a1 val2 20 a

我有一个SQL Server表\u 1,其中包含名称、子名称和值列

对于每个子名称,我可以通过查询获得值的平均值:

从表1中按子名称分组,选择子名称、平均值作为平均值

我还可以获得每个名称的值之和:

从表_1“按名称分组”中选择名称、sumvalue作为总和

我需要每个名称的每个平均行的百分比,我无法计算出来

编辑:例如百分比-平均值1是a1中总平均值的x%

从表1中选择*如下所示:

name subname value  
a1  val1    20  
a1  val2    20  
a1  val3    10  
a1  val1    40  
a1  val2    30  
a2  2val3   90   
a2  2val1   80  
a2  2val2   30  
a2  2val3   90   
a2  2val1   80  
a2  2val1   630  
输出:

name subname percentage
---- ------- -----------
a1   val1    46
a1   val2    38
a1   val3    15
a2   2val1   68
a2   2val2   7
a2   2val3   23
有用的阅读:


输出应该是什么样子?我想他们实际上是在问,作为数据,输出应该是什么样子?而不是列的名称。在这种情况下,在a1中,val1的平均值是30,val2的平均值是25,val3的平均值是10。因此,百分比为val1=30/30+25+10=46%,因此结果显示-a1 val1 46。。等等哇!对于像我这样的SQL-n00b来说,这是一些复杂的SQL,但它可以工作@heyNow:聚合窗口函数通常非常方便。我认为它们并没有那么难掌握!请查看OVER子句手册页面,了解更新答案中的链接。
name subname percentage
---- ------- -----------
a1   val1    46
a1   val2    38
a1   val3    15
a2   2val1   68
a2   2val2   7
a2   2val3   23