如果两个或多个记录版本不同,即查询应返回
,如何创建仅返回相同IP地址记录的SQL查询IP_Address Version
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 12
但不是
IP_Address Version
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
10.10.10.10 11
我在
中添加了什么select * from dbo.Computers
where IP_Address = '10.10.10.10'
没有说明版本是什么,它可以是任何数字
谢谢!
答案 0 :(得分:1)
好像您正在寻找过滤后的分组结果。
SELECT IP_Address
, Version
FROM dbo.Computers
WHERE IP_Address in (SELECT IP_Address
FROM dbo.Computers
GROUP BY IP_Address
HAVING COUNT(DISTINCT Version) > 1)
答案 1 :(得分:1)
WITH CTE AS (SELECT IP_Address,COUNT([Version]) OVER(PARTITION BY IP_Address,Version) AS [CountVersion],COUNT(IP_Address) OVER(PARTITION BY IP_Address) AS [CountIP]
FROM dbo.Computers)
SELECT A.IP_Address, A.Version
FROM dbo.Computers A
WHERE A.IP_Address IN(SELECT DISTINCT IP_Address FROM CTE WHERE CountIP>CountVersion)
ORDER BY IP_Address, Version
此查询使用公用表表达式来执行计数并显示列出了多个版本的IP地址。