【发布时间】:2021-05-16 09:03:31
【问题描述】:
我有一张桌子时间
第二个表SectorProject
第三个表Rfsector
我开发了以下查询
Select sum(time) as time, Sector_L1, T.id_Project
from time T
left join SectorProject SP ON t.id_Project=T.id_Project
left join Rfsector RF on RF.Sector_L2=SP.Sector_L2
GROUP BY Sector_L1, T.id_Project
结果和预期结果
我不明白结果,谁能解释我为什么会得到这个结果以及如何修改查询以得到预期的结果?
【问题讨论】:
-
能否以文本形式提供示例数据和所需结果,而不是图片链接。看来,您错过了查询 GROUP BY Sector_L1, T.id_Project
-
您的 SQL 甚至没有给出您所说的为您的示例数据提供的结果。 db<>fiddle
-
为了求和,您需要对要聚合的字段进行分组。
-
id_project=[1011,201,36] time=[48,520,120] time_df=pd.DataFrame({'id_project':id_project,'time':time}) id_project=[1011,1011,1011 ,201,36]扇区_l2=['建筑材料','金融机构','其他材料','建筑材料','建筑材料'] material_df=pd.DataFrame({'id_project':id_project,'sector_l2':扇区_l2})merged_df=material_df.merge(time_df, on="id_project", how="left") print(merged_df) grouped=merged_df.groupby(['id_project','sector_l2'])['time'].sum () grouped.plot() plt.xticks(rotation=90) plt.show() print(grouped)
-
聚合级别在 id_project 和扇区_l2 上,但连接属性在 id_project 上。结果是正确的
标签: sql sql-server tsql sql-server-2012