部分重复字段的问题

flyforlove flyforlove 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
前几天在这个帖子里问过这个问题。http://topic.csdn.net/u/20071126/18/b6bcc77e-6548-4fd2-884c-80fc7d27fdcd.html

由于没想清楚就匆忙结贴了。
实际上和我要的还是有出入的。

我先把问题和答案再贴一遍。

问题
-----------------------------------------------------
表中有三个字段
F1,F2,F3
记录之间F1和F2有可能重复,F3不会,
比如
F1 F2 F3
1 11 1
2 22 2
2 22 3
1 11 4
3 33 5

对于F1和F2重复的,我只想要一条,任何一条都可以。
比如结果为
1 11 1
2 22 2
3 33 5

如果用postgresql里的distinct on很好写,但是不知道标准的sql怎么写?不能用函数,不能用临时表,只有一条sql语句。
---------------------------------------------------------------------------------------

答案
----------------------------------------------------------
select f1,f2,max(f3) f3 from tb group by f1,f2
select f1,f2,min(f3) f3 from tb group by f1,f2
----------------------------------------------------------


由于我的问题没有问清楚,所以导致答案和需求有出入,实在抱歉。

我所举的例子,只有三个字段,不重复的字段只有一个,所以答案是没有问题的,但是实际上,我项目中所遇到的问题,不重复的字段并不是一个,而是多个,比如

F1 F2 F3 F4
1 11 1 4
2 22 2 3
2 22 3 2
1 11 4 1
3 33 5 5

这样的话,就不能使用
elect f1,f2,max(f3),max(f4) f3 from tb group by f1,f2
因为,虽然项目需求可以得到任何一条记录,但是前提是这些记录必须是同一行的记录,如果按照上面的写法,那么得到的F3,F4就有可能不是同一行的。

由于需要分页和排序,所以不能把记录都取出来再由程序处理。



...全文

相关推荐

数据库删除完全重复和部分关键字段重复的记录

重复记录分为两种,第一种是完全重复的记录,也就是所有字段均重复的记录,第二种是部分关键字段重复的记录,例如Name字段重复,而其它字段不一定重复或都重复。

weixin_38516380

Django 解决distinct无法去除重复数据的问题

今天需要使用Django查询一列的字段(不含重复),搞了一上午,发现这样的事情:如图: 得到的数据几乎是相等的,没有区别。 但是仔细看会发现:下面的数据比起上面的还是少了一个。 解决办法: django的distinct在使用之前必须先使用order_by方法排序,如图: 这样就完美解决了这个问题。 补充知识:Distinct和Group by去除重复字段记录 重复记录 有两个意义,一是完全重复的记录,也即所有字段均重复的记录 二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 select distinct

weixin_38730201

oracle下如何删除重复数据的几种方法

oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣

onmysmile

oracle中如何删除重复数据

oracle中如何删除重复数据,方便大家下载

good821103

易语言数据库检查重复字段模块源码

资源介绍:。录入数据库之前检测重复字段模块源码。资源作者:。资源界面:。资源下载:。

虚坏叔叔
评论 10
收藏 已收藏
分享
返回顶部
flyforlove
MS-SQL Server 34,876 成员 254,635 内容