ORACLE,筛选单字段不重复的记录,保留其他字段.
来源:互联网 发布:自动阅读小说软件 编辑:程序博客网 时间:2024/05/02 16:01
在ORACLE中,我们常常对数据进行排序和筛选,例如:成绩表中,将某一个人的所有科目成绩放到一起来看,那么我们会使用ORDER BY 语句。
例如表T1:
Name Subject Score
LI Math 84
Zhang Art 75
Li Physics 93
Zhang Math 97
Zhang Physics 71
Li Art 85
我们使用语句 SELECT *FROM T1 ORDER BY NAME 可以使得查询结果按姓名排列。
使用语句SELECT * FROM T1 ORDER BY SUBJECT 可以使查询结果按科目排列。(结果省略请自行操作)
对于求一个人的总分,也很好办,我们可以使用GROUP BY 语句,将求和的结果直接按每个名字一条记录输出,例如:
SELECT SUM(SCORE) FROM T1 GROUP BY NAME 这样可以得到各名字对应的总分。
事实上,类似于SUM,MAX,MIN这样的函数被称为聚集函数,就是和GROUP搭配起来用的。
然而很多时候我们需要的是聚集运算前的原始信息,例如:
ID TYPE
000132 A
000212 C
000213 B
000632 A
001283 B
这样的信息,我们希望按组分开,而又希望保留完整的条目(每个TYPE任意一条即可),笔者在网上看到的一个机智的做法是使用MIN函数。
SELECT MIN(ID),TYPE FROM T1 GROUP BY TYPE
这样,就取出了每个TYPE中的ID最小的一条记录,保留住了完整的记录信息,达到了期待的结果。
这个例子只考虑到了一条记录只包含两个字段的情况,多个字段是否依然适用,今天来不及实验了,请各位批评指正!如能回复,感激不尽!
- ORACLE,筛选单字段不重复的记录,保留其他字段.
- 去除数据库重复的保留一条记录,其他不改变
- mysql,oracle里删除重复记录,只保留一条(除了自增长字段,其他的字段完全相同为相同记录)
- 纠结了很久的问题,关于sql中单字段重复,取一条全字段的方法。
- 数据库记录中重复的某些字段的数据筛选
- SqlServer-删除某一个字段重复的记录,只保留一条
- 删除表中某字段重复的记录(只保留一条)
- Oracle 单字段拆分成多行
- oracle 删除指定字段重复的记录
- oracle 删除指定字段重复的记录
- oracle删除重复记录保留一条记录
- oracle单字段拆分成多字段
- 控制字段对应的目标单字段为减数,扣减字段为减数之和
- jqGrid的单字段查询
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- Mysql删除表中某字段重复记录,并保留id最新的记录
- [LeetCode]Generate Parentheses
- 盗版XP成主要恶意攻击对象
- IIS 发布站点遇到的问题
- 根据名称获取对应进程名的ID
- 为什么Nicira要抛弃OpenFlow硬件控制?
- ORACLE,筛选单字段不重复的记录,保留其他字段.
- jquery Deferred异步回调源码解析应用
- POJ 3278 Catch That Cow
- 在电脑上构建自我意识
- x264 command line usage
- 离开学校如何自学修炼成为一名网页设计师(三)
- EClipse选中一个其它雷同的,关联着色
- 栈的应用:中缀表达式转为后缀表达式(c语言实现)
- Adding Linux VLAN and bridge interfaces using libvirt