表A中有 字段 id, name, time,但是中间id和time 有断层, 要保留最新的100条数据,该怎么做?
表A中有 字段 id, name, time,但是中间id和time 有断层, 要保留最新的100条数据,该怎么做?
比如name=小明 考试成绩有130条,我只要最近100条, name好多不同:小东,小军,,,,,等等几千人
确定能对 多个人能起作用吗, 数据大概68万条,name接近5000个
追答你是对所有的人,一共只保留100条数据(答案如前次)
还是对不同name的人,每人都只留100条数据? 5000人即需要保留约50万数据?
对不同name的人,每人都只留100条数据
追答delete A
from A left join
(
select
(select top 1 id from A where aa.name=name and aa.time=time) id,
aa.name,aa.time from MZ_GHXX aa left join MZ_GHXX bb
on aa.name=bb.name and aa.time<=bb.time
group by aa.id,aa.name,aa.time
having count(bb.time)<=100
order by aa.name,aa.time desc
) t1
on A.id=t1.id
where t1.id is null
不对
追答delete A
from A left join
(
select
(select top 1 id from A where aa.name=name and aa.time=time) id,
aa.name,aa.time from A aa left join A bb
on aa.name=bb.name and aa.time<=bb.time
group by aa.id,aa.name,aa.time
having count(bb.time)<=100
order by aa.name,aa.time desc
) t1
on A.id=t1.id
where t1.id is null
数据表A有50M 大小,约40万条数据, 你确定这样做合适不?
追答最后定时做
本回答被提问者和网友采纳