数据过滤的SQl语句
表A、表B完全相同,表A中存学生成绩,如:
表A
ID 学生姓名 课程名称 分数
ID Sname Cname Score
1 张三 语文 88
2 张三 数学 97
3 张三 数学 98
4 李四 语文 84
5 李四 语文 88
现在要将表A中数据插入表B,要过滤掉一些重复的数据,如张三的数学成绩和李四的语文成功有一条重复数据,只保留分数最高的那一条。过滤后表B的数据为:
表B
ID 学生姓名 课程名称 分数
ID Sname Cname Score
1 张三 语文 88
2 张三 数学 98
3 李四 语文 88
------最佳解决方案--------------------insert into b(id,sname,cname,score)
select id=row_number() over(order by getdate()),
sname,cname,max(score) as score
from tb
group by sname,cname
------其他解决方案--------------------select Sname,Cname,max(Score) from 表A group by Sname,Cname
------其他解决方案--------------------null