我有一个数据表,我希望对其执行一些数值分析,因为我需要所有值都在同一范围内。 0..1.
我有一个有点慢和长手的方式来完成这个,但我想要一个更直接的前瞻性解决方案来解决我的问题
我需要做的是:
按项目编号分组 在每个项目中取每个值的平均值并除以整个集合的最大平均值。
目前我有
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
最佳答案
select
Projectid,
avg(cast(foo as decimal(29, 2))) / max(avg(cast(foo as decimal(29, 2)))) over ()
from tbl1
group by Projectid
关于sql - SQL 查询中的规范化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13173615/