您的位置:首页 > 数据库

过滤掉多余的重复记录的SQL语句

2011-08-31 12:06 260 查看
表中取出的fw_id有可能有重复的,结果可能如下fw_id, file_title

14 关于组织征集安全生产“千项”新型实用产品的通知
6 关于加强上海市安全生产专家管理的补充通知
18 关于什么什么的通知
18 关于什么什么的通知
18 关于什么什么的通知
7 关于对《上海市国民经济和社会发展地十二个五年规划纲要草案(征求意见稿)》修改建议
1 关于提请对上海市安全生产技术支撑体系专业中心市级实验室项目进行审计的函 现在需要将fw_id=18的记录只保留一条,重复记录只保留第一条就可以了,摸索了半天,最终方法如下:

with x as (

select a.*,
(select flow_name from flow where flow_id=a.flow_id) as flow_name
from AM_Fawen a,am_subproject3 b,am_projectlist c,taskcenter d,userlist u
where a.sp3_id=b.sp3_id
and b.sp3_id=c.pl_subprojectid
and b.sp3_tablename=c.pl_subprojecttable
and c.project_id=d.project_id
and ','+cast(u.id as varchar)+',' like d.handlers_assigned
and d.status=0 and b.sp3_projectname like '%%'
and fun_name like '%%'
)
,
y as (
select *,count(fw_id) over (partition by fw_id) r,row_number() over (partition by fw_id order by fw_id) rno from x
)
select * from y where rno=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: