我有2个临时表1,它存储2列,Locationid,average和另一个存储overallaverage的列。
我已经成功填充了位置和平均列但无法弄清楚如何执行overallaverage然后在SELECT中将它们连接在一起。我可以计算出整体平均值,我无法弄清楚如何将它加入到第一个临时表中。
陈述的例子
SELECT AVG(Hours) AS OverallAverage
FROM Hours
这可以解决overallaverage但是我需要一些东西来加入它,即Locationid但是如果我将Selectid添加到select,那么它将需要分组,因此给我一个平均每个位置而不是整体平均值。
表格外观的示例
LocationID Average OverallAverage 1 0.7 0.65 2 0.55 0.65 3 0.45 0.65 4 0.9 0.65
任何提示?
答案 0 :(得分:3)
您可以使用CROSS APPLY
:
select l.locationid, h.OverallAverage
from Location l
cross apply
(
select avg(hours) as OverallAverage
from hours
) h
甚至是CROSS JOIN
select l.locationid, h.OverallAverage
from Location l
cross join
(
select avg(hours) as OverallAverage
from hours
) h
答案 1 :(得分:2)
我不清楚你对“的意思是什么,但我需要加入某些内容”(特别是“某事”),但你可以这样做:
select t2.col1,
t2.col2,
hr.col1,
avg(hr.hours) over (partition by locationid) as average
avg(hr.hours) over () as overall_average
from hours hr
join table_2 t2 on t2.locationid = hr.locationid