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之入门(四)运算
May 27 Python
详解Python的迭代器、生成器以及相关的itertools包
Apr 02 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
使用Python对SQLite数据库操作
Apr 06 Python
python中map()函数的使用方法示例
Sep 29 Python
python实现京东秒杀功能
Jul 30 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
Python中print函数简单使用总结
Aug 05 Python
Python中turtle库的使用实例
Sep 09 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
Keras—embedding嵌入层的用法详解
Jun 10 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中截取字符串支持utf-8
2007/01/18 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
php自动载入类用法实例分析
2016/06/24 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
NodeJS安装图文教程
2018/04/19 NodeJs
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
2015年党员承诺书
2015/01/21 职场文书
全国助残日活动总结
2015/05/11 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
毕业证明书
2015/06/19 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang