SQL 数据排重,去掉重复数据 有用
.最大的错误:
在对数据排重的时候,首先想到的就是Distinct,虽然这很管用,但多数场合下不适用,因为通常排重后还要做进一步处理,比如对编号排重后要按日期统计等。
无法排重的Group by ... having ...
虽然可以用Group by userid having count(*) =1 或者>1 ,但只能找出重复或者不重复的记录,好像达不到distinct 的效果(我是没做到,啊笨)。
这个可以:
用select * from table t where not exists (select 1 from table where userid=t.userid and submit_time > submit_time) (submit_time为记录入库时间,或者可以用其他的只要是数据库中不重复的字段就成),同时还达到了一个效果,第一次入库的userid才被计算在内,这在许多情况下还是比较有用的(比如处理误操作什么的)。
值得注意:
另外在用上面的方法排重的时候,如果外面的select * .... where ... 后还有其他条件,则这些条件也要写入 select 1 from .... where .... 中,即内、外条件要相同(我就是没注意到这点,发现结果比Distinct 上下差几条,郁闷了好久:( )
2.还可以这样:select * from(select ID,Name,Email ROW_NUMBER() over (partition by Email order by ID desc) as rn from 学员表 ) Kwhere rn<2; 3.根据一个字段排重
where 字段 in (select 字段 from 表 group by 字段 having count(字段) > 1)
4.sql1="select 标题,参考价格,内容,生产厂商,配件类型,适用机型,配件性能 from Contentpj GROUP BY 标题,参考价格,内容,生产厂商,配件类型,适用机型,配件性能"SQL 数据排重,去掉重复数据 有用的更多相关文章
- SQL查询去掉重复数据
本文主要总结数据库去掉重复数据的方法 去掉重复数据的方法: 第一种:distinct 根据单个字段去重,能精确去重: 作用在多个字段时,只有当这几个字段的完全相同时,才能去重: 关键字distinct ...
- SQL查询语句,怎样查询重复数据
SQL查询语句,怎样查询重复数据 2012-02-22 14:50神奇的马骁勇 | 浏览 0 次 有表A, 中有字段id, name, memo现在有很多id重复的数据,怎么把这些重复的都查出来?gr ...
- SQL删除指定条件的重复数据,只保留一条
BEGIN DELETE TB FROM TableName TB WHERE TB.ID IN (SELECT MIN(ID) FROM TableName TB2 GROUP BY TB2.Col ...
- mysql插入数据时,去掉重复的数据;
1. 利用insert ignore into语句去重 mysql> INSERT IGNORE INTO person_tbl (last_name, first_name) -> VA ...
- 在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据
在很多情况下,应用程序都需要实现excel数据导入功能,数据如果只有几十条,或上百条,甚至上千条,速度还好. 但是不仅如此,如果客户提供给你的excel本身存在着重复数据,或是excel中的某些数据已 ...
- C#里面的事物回滚,解决同步数据插入时出现重复数据
什么是事物回滚: 举个栗子,你在你家的银行分行取钱,取完钱数据要同步,而且可能每个分行都有一个存储这些数据的数据库,分行的这些 存取的记录都需要实时同步,如果你取完500刚好断电了,好嘛,分行可能刚记 ...
- java 去除数组重复数据,并输出重复数据值
/** * 去除重复数据 * @author Sunqinbo */ public class RemoveDuplicateData { public static void main(String ...
- C# Excel数据验重及Table数据验重
http://blog.csdn.net/jiankunking/article/details/38398087 最近在做导入Excel数据的时候,要检验数据是否重复: 1.要检验Excel数据本身 ...
- SQL去掉重复数据
SELECT vc_your_email,vc_our_ref_or_code INTO #tmp FROM( SELECT vc_your_email,vc_our_ref_or_code,ROW_ ...
随机推荐
- 深入理解java虚拟机-第十章-早期(编译期)优化
第10章 早期(编译期)优化 javac编译过程: 1.解析与填充符号表过程 词法.语法分析 将源代码的字条流转变为标记(Token)集合.如“int a = b + 2”这名代码包含了6个标记,分 ...
- EMQ (Erlang/Enterprise/Elastic MQTT Broker)
EMQ (Erlang/Enterprise/Elastic MQTT Broker) https://www.cnblogs.com/SteveLee/p/9843215.html MQ介绍 EMQ ...
- DbEntry 默认 主键ID为long
DbEntry 默认 主键ID为long,如果自己表中的主键ID为int,可以通过以下方式修改: public class Company :DbObjectModel<Company,int& ...
- 分类(类别/Category)与 类扩展(Extension)
一.分类(类别/Category) 1.适用范围 当你已经封装好了一个类(也可能是系统类.第三方库),不想在改动这个类了,可是随着程序功能的增加需要在类中增加一个方法,这时我们不必修改主类, ...
- C语言词法分析:C#源码
今天继续研究代码解析的算法 这个是算法流程图 有图解可能更直观一点: 以下是c#源码: 1using System; 2using System.IO; 3using System.Tex ...
- mybatis-generator的坑
有天发现mybatis-generator不能用,要加什么根项目前缀, 搞到我重新从github下载,然后发现仓库用不了,原来新项目会改我的maven配置(新坑 后来终于明白要在子项目栏使用手脚架,就 ...
- ecmall允许上传的图片大小
$uploader->allowed_type($type); $uploader->allowed_size($size); ecmall上传类型大小是这样定义,你可以去文件中搜索相关 ...
- B/S与C/S的区别
参考:http://www.cnblogs.com/groler/articles/2116905.html 一.概念 C/S结构:即Client/Server(客户机/服务器)结构,是大家熟知的软件 ...
- php-fpm.conf 配置文件详解
php-fpm.conf 配置文件详解 [global] pid = run/php-fpm.pid error_log = log/php-fpm.log log_level = notice # ...
- 阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
此教程中使用的相关IP等设置,在你的环境中要做相应修改. 使用之前更新apt-get,因为服务器基本上是一个裸系统 apt-get update;apt-get upgrade; 1 我们使用root ...