--1、建立表:Course
create table Course
(
 ID int identity(1,1),--ID
 Student varchar(20) ,--学生
 Sub varchar(20) ,--课程
)

--2、插入数据
INSERT INTO Course
VALUES ('张三','语文'),('李四','语文' ),('王五','语文' )

INSERT INTO Course
VALUES ('张三','语文'),('李四','英语' ),('王五','数学' )

INSERT INTO Course
VALUES ('张三','数学'),('李四','英语' ),('王五','英语' )

INSERT INTO Course
VALUES ('张三','语文'),('李四','英语' ),('王五','数学' )

select * from Course order by ID

展示效果:

--2、Num:根据 学生、课程 汇总排序;with就是把查询的数据放到TempCourse表中
--最后对TempCourse筛选出 姓名+课程 重复的数据保留ID最小的(num>1)存入临时表 #TmpDeletedTb
;WITH TmpCourse (ID,Student,Sub,Num)
as
(
    select ID,Student,Sub,ROW_NUMBER() OVER(PARTITION BY Student,Sub ORDER BY ID ) as num
     from Course
)
SELECT * into #TmpDeletedTb FROM TmpCourse where num>1 order by Student,Sub,ID

select * from #TmpDeletedTb

展示效果:

--3、删除重复数据 且保留ID最小数据
delete Course  from Course a
inner join #TmpDeletedTb Del on del.ID=a.ID

select * from Course

最后展示效果:

最新文章

  1. 搭建OpenGL环境-Windows/VS2013
  2. python中mysqldb的用法
  3. linux 服务初识
  4. 【python】浅谈encode和decode
  5. JavaWeb项目开发案例精粹-第6章报价管理系统-06po层
  6. android.os.NetworkOnMainThreadException异常处理办法
  7. 笔试题&面试题:找出一个数组中第m小的值并输出
  8. 了解你的被测系统(why?)
  9. C#中的协变OUT和逆变
  10. centos7 简单搭建lnmp环境
  11. C++\virtual 虚函数、纯虚函数
  12. react实战项目开发(2) react几个重要概念以及JSX语法
  13. js对input框的可编辑属性设置
  14. 微信小程序,图片居中显示,适配不同机型
  15. bootstrap fileinput 使用记录
  16. Linux Centos下查看cpu、磁盘、内存使用情况,关闭MySQL日志
  17. Pony 编程语言介绍
  18. java中 this 关键字的三种用法
  19. 详细解读Volley(五)—— 通过源码来分析业务流程
  20. POJ 2371

热门文章

  1. help man info 三个的区别
  2. 论SCRM系统对传统行业的冲击
  3. Linear Algebra Lecture5 note
  4. 酷炫ILOVEU
  5. 嵌入式系统添加无线wifi模块
  6. 使用keytool 生成证书
  7. Linux入侵检查思路及其命令 转自https://yq.aliyun.com/articles/24250?spm=5176.100239.blogcont24249.12.rbBrIh
  8. 【java】jackson 中JsonFormat date类型字段的使用
  9. php mysql 一个查询优化的简单例子
  10. python中import和from...import区别