sql - 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 行,你能解释一下为什么所有数据都是不同的吗
解决方案
在 datesinfo 中,记录 3 和 5 具有相同的名称,但 servicepacksupportenddate 不同。每个在您的最终结果中出现一次,这是正常的。
推荐阅读
- mongodb - PyMongo - 从具有最大值的数组中选择对象
- python - 全局变量未在 Django 视图中更新
- mysql - [错误][服务器] 你是否已经在端口:3306 上运行了另一个 mysqld 服务器?
- dll - 正确构建后可执行文件找不到.dll
- shell - 将十六进制值解析为 shell 脚本的字符串
- sql - 使用 Excel VBA 插入 Redshift
- json - 使用输出部分创建 Cloudformation 堆栈时无输出
- php - sort_flag 如何对数组进行排序?
- node.js - MongooseError [CastError]:在路径“收藏夹”中,值“{ id:'5e9485557841553e6806b6e1'}”转换为 ObjectId 失败
- nginx - nginx geoip city 如何只使用英文字符?