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


Posted in Python onMay 20, 2020

今天需要使用Django查询一列的字段(不含重复),搞了一上午,发现这样的事情:如图:

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

得到的数据几乎是相等的,没有区别。

但是仔细看会发现:下面的数据比起上面的还是少了一个。

解决办法:

django的distinct在使用之前必须先使用order_by方法排序,如图:

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

这样就完美解决了这个问题。

补充知识:Distinct和Group by去除重复字段记录

重复记录 有两个意义,一是完全重复的记录,也即所有字段均重复的记录

二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name
select * from #Tmp where autoID in(select autoID from #tmp2)

最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

其它的数据库可以使用序列,如:

create sequence seq1;
select seq1.nextval as autoID, * into #Tmp from tableName

zuolo: 我根据上面实例得到所需要的语句为 SELECT MAX(id) AS ID,Prodou_id,FinalDye FROM anwell..tblDBDdata GROUP BY Prodou_id,FinalDye ORDER BY id,之前一直想用Distinct来得到指定字段不重复的记录是个误区。

以上这篇Django 解决distinct无法去除重复数据的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
深入理解Python3 内置函数大全
Nov 23 Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
Python实现求数列和的方法示例
Jan 12 Python
Python中的枚举类型示例介绍
Jan 09 Python
Python语法分析之字符串格式化
Jun 13 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
python多次执行绘制条形图
Apr 20 Python
在主流系统之上安装Pygame的方法
May 20 #Python
python Django 反向访问器的外键冲突解决
May 20 #Python
Python如何实现爬取B站视频
May 20 #Python
django在开发中取消外键约束的实现
May 20 #Python
520使用Python实现“我爱你”表白
May 20 #Python
django 外键创建注意事项说明
May 20 #Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 #Python
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php计算年龄精准到年月日
2015/11/17 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
Python对象转JSON字符串的方法
2016/04/27 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
python实现趣味图片字符化
2019/04/30 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
django 多数据库及分库实现方式
2020/04/01 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
基于keras中的回调函数用法说明
2020/06/17 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
致长跑运动员广播稿
2014/01/31 职场文书
致共产党员倡议书
2014/04/16 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
如何写股份合作协议书
2014/09/11 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
厉行节约工作总结
2015/08/12 职场文书