2 baidu 33903518 baidu_33903518 于 2016.02.24 16:44 提问

SQL查询字段有重复只取一条数据
sql

sql查询数据,其中一个字段的数据有重复,重复的数据其他字段除创建时间外都相同,重复数据如何只显示最新的那条数据?

3个回答

Q_user
Q_user   2016.02.24 16:56

select * from t where 时间 in (
select max(时间) from table group by 相同字段1,相同字段2,相同字段3,....
)

思路 : 查询字段相同的数据(group by 或 distinct) 然后取出时间最新 (max 或者 时间升序)的数据, 将以上结果放在临时表 然后再查询时间存在于临时表的数据,查询出来的结果就是你需要的数据。

baidu_33903518
baidu_33903518 一个in字,困扰我很久~
2 年多之前 回复
baidu_33903518
baidu_33903518 大神啊,可以了,谢谢啊~查了一下午了
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2016.02.24 16:49

Max(日期),选出这个条件数据,配合group by

baidu_33903518
baidu_33903518 group by我只获得了重复字段的数据和日期,怎么把其他数据加上去?
2 年多之前 回复
beacon_2011
beacon_2011   Rxr 2016.02.25 09:58

select * from table where 相同字段 in (select distinct 相同字段 from table ) and rownum=1

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
取得数据表中前N条记录,某列重复的话只取第一条记录
项目需要筛选出不重复数据,以前没有做过,第一反应就是利用distinct处理,但是弄了好久也没搞出来,大家有知道的望告知下。 这次筛选没有使用distinct ,是利用group by ,利用id为唯一标示符(自增长),对按user进行排列,然后取重复项最小id(非重复项直接取唯一id),并以此id为条件查询,从而去除重复的数据。 数据格式为: 使用语句如下: se
oracle 数据重复,只取一条
oracle中重复记录只取其中一条 select * from table1 where rowid=any(select max(rowid) from table1 group by field1) 或者 select * from table1 where rowid in (select max(rowid) from table1 group by field1)
SQL中遇到多条相同内容只取一条的最简单实现
SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。 如下:表timeand 针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种 1、select time,max(total) as total,name from
oracle-查询数据,其中指定字段重复的只取其中一条
今天学了一句sql和大家分享一下: oracle数据库,情景:表(客户-业务员)中数据都不完全重复,但是可能多条数据其中某些字段重复。我想要取得表中符合条件的记录,但是这些记录中的客户id和客户名称发生重复的话只能留一个。 如上图我想找出“冯冬梅”负责的所有客户,但是由于她属于多个部门,此表存储的是不同部门-不同人员对应的不同客户,所以会有重复数据,那么我想去除重复得到完整的记录,应该怎么...
MySQL 表中多个字段重复只保留一条数据
1、使用sql语句进行查询(多个字段重复) select  * from  test1 group by factory_name,model_name,hard_version  having count(*)>=1 2、将查到的数据导出为csv文件 3、清空表 truncate test1 4、使用mysql yog   在test1表右键-》导入-》导入加载本地csv数据
sql语句 一个字段有好多重复的数据,但只取第一次填进去的数据
这是按照时间进行的取数据。最早填进数据库的时间。 $re=mysql_query("SELECT user_apps.app_key,min(ald_session_logs.start_time) as start_time,user_apps.app_name,ald_session_logs.version FROM user_apps LEFT JOIN ald_session_logs
SQL查询重复数据,只显示一条sql语句
2种方法, 1.在select后面加 distinct 可以过滤重复的数据, 点评:在海量数据下效率低 2.利用group by ,把查询到的字段都放在group by后面,点评:效率比distinct高,使用也比distinct麻烦点!sql语句: select name from ZonCanKu group by name
同一条数据出现多条取一条的sql语句
理论上相同数据个别字段值不同重复问题:1.某字段重复,其他字段值不同时,按重复字段分组只取一条的sql语句(eg:相同的数据某个字段值有差别导致存储两条或多条无意义重复数据的情况)selects.* from (   select *, row_number() over (partition by [重复字段] order  by [不同字段]) as group_idxfrom table_n...
oracle 某个字段重复的记录,选其中随便一条。
select * from BASE_DCR_DUE where rowid in (select row_id from (select du_mode_code, max(rowid) row_id
db2 查询重复数据只显示一条
方法1:row_number()函数 select * from ( select a.*,row_number() over(partition by 分组字段 order by 排序字段) rn from 表名; ) b where rn = 1上面这个方法还是很好用的,解决了我的问题方法二:DISTINCT select distinct  列名 from 表名 where 条件;方法三