首页 > 解决方案 > SQL join 使用 group by 子句给出重复行

问题描述

感谢所有帮助我在使用连接时遇到的问题

使用一个 sccm 查询

    select count(distinct resourceid) as ModelCount,caption0,CSDVersion0 from [dbo].[v_GS_OPERATING_SYSTEM]  
where caption0 like '%Windows Server%'
group by caption0,CSDVersion0

我得到的数据如下

在此处输入图像描述

所以我得到了以下数据,我已经为每个 Windows 版本制作了另一个表,其中包含扩展的支持日期

select * from datesinfo

我正在获取的数据

在此处输入图像描述

在两个表上进行连接后,我正在编写查询

    select count(distinct OS.resourceid) as ModelCount,(dt.serverinfo),CSDVersion0,dt.Extendedsupportenddate,dt.servicepacksupportenddate from [dbo].[v_GS_OPERATING_SYSTEM] OS
inner join datesinfo dt on  os.caption0=dt.serverinfo where os.caption0 like '%Windows Server%'
group by OS.caption0,OS.CSDVersion0,dt.serverinfo,dt.Extendedsupportenddate,dt.servicepacksupportenddate

我得到一行重复的 672 行,你能解释一下为什么所有数据都是不同的吗

在此处输入图像描述

标签: sqltsql

解决方案


在 datesinfo 中,记录 3 和 5 具有相同的名称,但 servicepacksupportenddate 不同。每个在您的最终结果中出现一次,这是正常的。


推荐阅读