我有一个数据表,我希望执行一些数字分析,因为我需要所有的值都在相同的范围内。 0..1。规范化SQL查询中的值
我完成这有点慢,longhanded方式,但想更straigt着高性能的解决我的问题
我需要做的是:
组由专案编号 在每个项目取每个值的平均值并除以整个集合的最大平均值。
目前我有
select avg(foo * 1.0)/ (Select MAX(IL) FROM (select avg(foo * 1.0) as IL from table group by
ProjectID) tbl)
from table
因此,如果该列表是
projectid | foo
-----------------
1 | 1
1 | 2
2 | 4
2 | 2
最大平均是3,结果应该为此是
0.5,1
其中首先是projectId 1除以3的平均值,第二个是projectId的平均值2除以3
不会产生预期的结果。结果是0.333333和1 –
不,结果是0.5和1,只是在SQL小提琴中检查它 - http://sqlfiddle.com/#!3/57a00/18 –
现在它是正确的,但再次这不是版本显示或在小提琴链接时,我写了评论:) –