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 相关文章推荐
python查找第k小元素代码分享
Dec 18 Python
python基础教程之五种数据类型详解
Jan 12 Python
Python构建图像分类识别器的方法
Jan 12 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Django框架 querySet功能解析
Sep 04 Python
python实现统计代码行数的小工具
Sep 19 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
python开发前景如何
Jun 11 Python
如何在pycharm中安装第三方包
Oct 27 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
怎么用Python识别手势数字
Jun 07 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
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
php变量范围介绍
2012/10/15 PHP
destoon各类调用汇总
2014/06/20 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
Python中条件判断语句的简单使用方法
2015/08/21 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python装饰器简单用法实例小结
2018/12/03 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
执行力心得体会
2013/12/31 职场文书
个人求职信范文分享
2014/01/31 职场文书
五年级科学教学反思
2014/02/05 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
社会发展项目建议书
2014/08/25 职场文书
材料物理专业求职信
2014/09/01 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
公司股份合作协议书
2014/12/07 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL