划分产品和部门

partition over product and sector

这里是表格的描述和我尝试做的事情:

WITH Time AS(
    SELECT *
    FROM (VALUES(1011,48),(201,520),(36,120))V(id_project,time)),
SectorProject AS(
    SELECT *
    FROM (VALUES(1011,'BM'),(1011,'Fi'),(1011,'Om'),(201,'BM'),(36,'BM'))V(id_project,Sector1)),
    prductProject AS(
    SELECT *
    FROM (VALUES(1011,'bike'),(1011,'velo'),(1011,'pc'),(201,'n'),(36, 'r' ))V(id_project,product))
select
 T.id_project, Sector1 ,product, sum(time) as time
,  avg( sum(time))  over(partition by Sector1,product)
as avgtilme
from time T left join
     SectorProject SP 
     on SP.id_Project = T.id_Project 
     left join
     prductProject P 
     on p.id_Project = T.id_Project 
     group by T.id_project, Sector1,product
     order by T.id_project,product

db<>fiddle

这里是预期结果:

如何在扇区和产品上划分 48?

如果我正确理解了您的请求和数据结构,您应该能够通过在 SELECT clause

中使用以下内容来计算
(0.0+t.time)/(count(1) over(partition by t.id_project))

0.0+ 的存在只是为了避免自动转换为整数。

您似乎希望将平均值除以每个项目的计数。一种方法是:

avg( sum(time)) over (partition by t.id_project) * 1.0 / count(*) over (partition by t.id_project)