以下是我的数据
ID Date Other Field
123 1/2/2017 a
123 1/3/2017 b
123 1/3/2017 c
123 1/5/2017 d
123 1/6/2017 e
123 1/6/2017 f
456 2/4/2017 g
456 2/4/2017 h
456 2/5/2017 i
456 2/6/2017 j
我希望确定何时有ID复制的日期,我想返回整个记录。结果看起来像
ID Date Other Field
123 1/3/2017 b
123 1/3/2017 c
123 1/6/2017 e
123 1/6/2017 f
456 2/4/2017 g
456 2/4/2017 h
我不确定如何在单个表中识别重复日期,然后仅单独返回这些记录。
非常感谢任何帮助!
答案 0 :(得分:1)
select
t1.* from
table t1
join
(select id,date,count(*) from
table t2
group by id,date
having count(*)>=2
) t2
on t1.id=t2.id and t1.date=t2.date
答案 1 :(得分:0)
您使用的数据库是什么?如果它支持窗口函数(例如Oracle或PostgreSQL),那么:
select
id, "date", other_field
from
(
select
tbl.*,
count(*) over (partition by id, "date") date_cnt
from tbl
)
where date_cnt >= 2