`

sql 如何过滤重复记录

 
阅读更多
请各位大侠帮忙了
问题1:对于以下几个记录
ID
123456
123123
123456
123456
123789

所有执行完SQL后的结果顺序与原ID顺序相同,另外由于涉及到数十万条记录的操作,要求速度要快
要求结果1:去除重复ID,显示记录结果为 
123456
123123
123789
要求结果2:去掉重复ID,显示结果为
123123
123789 (与结果1不同的是将所有123456都去除了,而结果1进行了保存)
要求3:根据阈值的不同,决定是否进行重复过滤,例如阈值设置为2,由于123456的重复个数为3,那么由于3》2
结果为
123123
123789 
如果阈值为4,由于3《4
结果为
123456
123123
123456
123456
123789

要求结果4:上面提到的过滤均是整个字段的过滤,如果有如下新的需求,只针对字段的前三位进行过滤,上面字段的前三位均是123,那么过滤结果是这6个字符串都是相同的(因为只取前三位作为比较依据),最终输出结果就是这六个字符串,
而如果选择前四位进行过滤,上面字段中有三个是相同的,1234开头的,最终输出结果就是这三个字符串







要求结果1:
   如果只取ID列 select distinct ID from table1
    如果还有其他列,在id相同情况下,取col1最小的记录。
   select ID,col1 from table1 t1 where not exists(select * from table1 where ID=t1.ID and col1>t1.col1)
要求结果2:
select ID from table1 t1 where not exists (select * from table1 where ID=t1.ID)
select ID from table1 t1 where (select count(*) from table1 where ID=t1.ID)=1
要求3:例如阈值设置为2
select ID from table1 t1 where (select count(*) from table1 where ID=t1.ID)<=2
要求结果4:选择前四位进行过滤
select distinct ID=left(ID,4) from table1
只要把前面语句中的ID换成left(ID,4)就可以了。
分享到:
评论

相关推荐

    轻松消除SQL SERVER重复记录

    在SQL Server中,处理重复记录是一项常见的数据库维护任务。标题提到的"轻松消除SQL SERVER重复记录"是指在SQL Server环境中高效、便捷地去除数据库表中的重复行。描述中提到的问题是开发人员在查询和统计时可能遇到...

    过滤一些重复记录的方法

    "过滤重复记录"就是解决这一问题的关键技术。以下将详细介绍过滤重复记录的方法,并结合给定的文件信息进行讨论。 首先,我们需要理解什么是重复记录。在数据库中,如果多条记录具有完全相同的字段值,那么这些记录...

    sql注入过滤字典.txt

    ### SQL注入过滤字典知识点详解 #### 一、SQL注入简介 SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在应用程序接收用户输入的地方插入恶意SQL语句,来操控数据库执行非预期的操作。为了防范此类攻击,...

    sqlserver 删除重复记录处理(转)

    注:此处“重复”非完全重复,意为某字段数据重复 HZT表结构 ID ... 过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title) 注:此处显示ID最大一条记录 二. 删除重复记录

    oracle sql 去重复记录不用distinct如何实现

    select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id,name这2个字段的值。 select distinct id,name from t1 可以取多个字段,但只能消除这2个字段值全部相同的记录 所以用distinct达...

    一个过滤重复数据的 SQL 语句

    过滤重复数据的 SQL 语句 在关系数据库管理系统中,经常会遇到重复数据的问题,而过滤重复数据是数据处理和分析的重要步骤。本文将介绍如何使用 SQL 语句来过滤重复数据,并讨论相关的知识点。 一、数据重复的原因...

    ORACLE重复记录查询.docxORACLE

    当我们需要根据单个字段(如`peopleId`)查找重复记录时,可以使用以下SQL语句: ```sql select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) &gt; 1...

    删除数据库中的重复记录

    本篇文章将深入探讨如何在SQL数据库,如Microsoft Access(.accdb)中查找并删除重复记录。 一、查找重复记录 1. SQL查询:使用`GROUP BY`和`HAVING`子句可以找出重复的数据。例如,假设我们有一个`Employees`表,...

    去掉重复记录select * from

    根据提供的文件信息,本文将详细解释如何在SQL中去除重复记录的方法,并重点解析所提供SQL语句的功能和原理。 ### 去除重复记录的基本概念 在数据库管理中,经常会出现同一份数据出现多次的情况,这被称为重复记录...

    数据库 查询删除重复数据

    可以使用以下 SQL 语句来查找和删除重复记录: ``` -- 查找重复记录 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) &gt; 1) -- 删除重复记录,只...

    Oracle查询重复数据与删除重复记录方法

    通过`HAVING COUNT(num) &gt; 1`来过滤出重复记录。 ##### 3. 使用DISTINCT方法 **查询重复数据示例** 对于较小的表,可以使用`DISTINCT`方法来快速找出重复记录。具体做法是创建一个新的表,并通过`SELECT DISTINCT...

    oracle 查询出每组中最大的三个记录和查询重复记录

    至于提供的`重复记录.sql`文件,它可能包含了一个示例查询,用于演示如何在实际环境中找出重复记录。具体的内容和使用方式,需要打开文件查看其SQL脚本。不过,根据描述,这个文件没有给出更多的上下文,因此无法在...

    如何使用SQL组件查询记录.

    -- 查询不重复的记录 SELECT DISTINCT column FROM table_name; -- 使用聚合函数 SELECT COUNT(*) FROM table_name; -- 计算行数 SELECT AVG(column) FROM table_name; -- 计算平均值 -- 分组并筛选 SELECT column...

    重复查询SQL

    本文将深入探讨“重复查询SQL”的概念、应用场景、执行原理以及如何利用SQL语句来高效地识别和处理数据库中的重复记录。 ### 重要性与应用场景 在企业级应用中,数据库通常承载着海量的信息,而数据的重复可能源于...

    经常面试到的SQL题(查询重复数据和清除重复数据).

    在SQL中,`GROUP BY`语句用于将数据分组,而`HAVING`子句则用于在分组后对条件进行过滤。例如,假设我们有一个名为`employees`的表,包含`employee_id`, `name`, 和 `position`字段。以下查询可以找出所有具有相同...

    sqlserver中重复数据值只取一条的sql语句

    在SQL Server中,有时我们需要处理含有重复数据的表,例如,我们可能希望只保留每组重复数据中的第一条记录。在给定的标题和描述中,提到了如何编写一个SQL语句来实现这一目标。以下是对这个话题的详细解释: 首先...

    Oracle提高SQL查询效率(SQL优化).doc

    Oracle 中提高 SQL 查询效率的技巧和策略,包括选择最有效率的表名顺序、WHERE 子句中的连接顺序、SELECT 子句中避免使用‘*’、减少访问数据库的次数、使用 DECODE 函数、整合简单的数据库访问、删除重复记录、用 ...

    SQL语句优化总结34条

    8. **删除重复记录**:通过比较ROWID删除重复记录是最高效的方法,因为它直接定位到具体行。 9. **使用TRUNCATE替代DELETE**:删除整表记录时,TRUNCATE操作更快,因为它不涉及回滚段,且不记录单行删除信息。 10....

    数据库客户端工具A5 sql

    - history.txt:可能包含了用户的查询历史记录,方便用户回顾和重复执行先前的SQL语句。 - readme.txt:通常包含软件的使用说明、注意事项或者版本信息,是初次使用时应该查阅的重要文档。 - VirusCheck.txt:可能是...

Global site tag (gtag.js) - Google Analytics