微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按产品和部门划分

如何解决按产品和部门划分

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

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'),'Om'),'BM'))V(id_project,Sector1)),prductProject AS(
    SELECT *
    FROM (VALUES(1011,'bike'),'velo'),'pc'),'n'),'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,product
     order by T.id_project,product

db<>fiddle

这里是预期的结果:

enter image description here

如何在扇区和产品上分区 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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。