SQL平均值百分比
我有一个SQL Server表\u 1,其中包含名称、子名称和值列 对于每个子名称,我可以通过查询获得值的平均值: 从表1中按子名称分组,选择子名称、平均值作为平均值 我还可以获得每个名称的值之和: 从表_1“按名称分组”中选择名称、sumvalue作为总和 我需要每个名称的每个平均行的百分比,我无法计算出来 编辑:例如百分比-平均值1是a1中总平均值的x% 从表1中选择*如下所示: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
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