假设我的数据如下:
ID Date Data
A D1 123
A D1 456
A D2 123
我正在寻找的是一个select语句,它将拉出ID和Date作为一对重复的所有行,但数据不匹配。在这种情况下,它将返回前两行,因为ID A和Date D1作为一对重复,但数据是不同的。不会返回第三行,因为不会重复ID和日期组合。
答案 0 :(得分:2)
有几种方法可以做到这一点。以下是使用exists
的一个选项:
select *
from yourtable t
where exists (
select 1
from yourtable t2
where t.id = t2.id and t.date = t2.date and t.data <> t2.data
)
答案 1 :(得分:0)
SELECT d.Id ,
d.Date ,
d.Data
FROM YourTable d
INNER JOIN ( SELECT Id ,
Date
FROM YourTable
GROUP BY Id ,
Date
HAVING COUNT(*) > 1
) a ON a.Id = d.Id