查询及删除重复记录的方法

2023-10-29

(一)
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people 
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段) 
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1

如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1


(三)
方法一

declare @max integer,@id integer

declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0

  方法二

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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,autoID

select * from #Tmp where autoID in(select autoID from #tmp2)

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

(四)
查询重复

select * from tablename where id in (

select id from tablename

group by id

having count(id) > 1

)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查询及删除重复记录的方法 的相关文章

  • 为什么 C 提供的整数类型对于基本上任何项目来说都不够好?

    我更像是一名系统管理员而不是程序员 但我确实花费了大量的时间研究程序员的代码 试图找出问题所在 以及数量令人不安的that当程序员期望 u ll int32 t 或其他任何定义 是的 我知道这不是真的 但要么期望定义该类型的文件位于其他地方
  • 如何使用 PHP/MySQLi 将 NULL 放入 MySQL 整数列?

    我通过 URL 将值传递到 PHP 页面 并在 MySQLi 查询中使用它们 问题在于 对于整数列 空字符串会转换为零 而实际上它需要为 NULL 如何使用 PHP MySQLi 从 URL 中传递的参数获取 NULL 到整数列中 更新 下
  • 如何在 erlang 中格式化包含整数的平面字符串?

    在erlang中 我想格式化一个包含整数的字符串 并且我希望结果被展平 但我明白了 io lib format sdfsdf B 12312 115 100 102 115 100 102 32 12312 我可以使用下面的代码获得所需的结
  • leetcode 逆整数——如何处理溢出

    问题是 反转整数的数字 示例1 x 123 返回321 示例2 x 123 返回 321 您是否注意到反转的整数可能会溢出 假设输入是32位整数 那么1000000003的逆序就会溢出 遇到此类情况应该如何处理 抛出异常 很好 但是如果不能
  • Int 转换不起作用[重复]

    这个问题在这里已经有答案了 我正在为我的游戏创建高分功能 但无法让它发挥作用 这是我的方法 def game over self Game over Screen keys pygame key get pressed self gameo
  • java编程确定对称词[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是新来的 但我很难弄清楚如何编写代
  • 如何按顺序获取int中的每个数字?

    我有一个整数 int iNums 12476 我想从中获取每个数字作为整数 就像是 foreach iNum in iNums printf i iNum 所以输出将是 1 2 4 7 6 但我需要每个数字作为int not as char
  • 字符串到整数

    假设你有字符串 Hi 你如何得到一个值8 9 H 是字母表中的第 8 个字母 并且 i 是第 9 个字母 然后说 添加1到这些整数并使其9 10然后可以将其重新放入字符串中 Ij 是否可以 Note卡里 斯沃夫兰 Cary Swovelan
  • 如何在C++中存储1000000位整数

    在我的问题中 我必须保存大整数 例如最多 1000000 位数字 并执行一些操作 我该怎么做 我知道 C 中的 long int 最多可以存储 10 位数字 您可以使用GMP http gmplib org GNU 任意精度库 请注意 这不
  • 当不应该使用整数和双精度数时会给出不同的答案

    我正在解决欧拉项目问题14 https projecteuler net problem 14使用java 我并不是寻求帮助解决问题 我已经解决了 但我遇到了一些我无法弄清楚的事情 问题是这样的 为正集合定义以下迭代序列 整数 n n 2
  • 转换为 int16、int32、int64 - 您如何知道选择哪一个?

    我经常必须转换检索到的值 通常作为字符串 然后将其转换为 int 但在 C Net 中 您必须选择 int16 int32 或 int64 当您不知道检索到的数字有多大时 您如何知道选择哪一个 这里每个提到声明 Int16 保存 ram 的
  • 鲁比“是吗?”需要类或模块(类型错误)

    我正在使用 Ruby 并尝试创建一个小型银行帐户程序 当我运行在 create account 中运行的这一特定代码行时 unless response is a Integer response to str length 4 puts
  • JavaScript 中的整数

    MDN https developer mozilla org en JavaScript A re introduction to JavaScript Numbers states JavaScript 中的数字是 双精度 64 位格式
  • Lua中如何获取表中的最大整数?

    Lua中如何获取表中的最大整数 在Lua 5 1及更早版本中 你可以使用 math max unpack 1 2 3 4 5 这受到Lua堆栈大小的限制 在 PUC Lua 5 1 上 该值的最大值可达 ca 8000 个数字 如果堆栈空闲
  • 如何对无法存储在一个变量中的大数字进行运算

    在Java中 我希望能够对非常大的整数 不能存储在long中 进行操作 我该怎么做 在表现良好的情况下 处理这个问题的最佳方法是什么 我应该创建自己的包含多个长变量的数据类型吗 Example public class MyBigInteg
  • 将两个 Int 值相除以获得 Float 的正确方法是什么?

    我想分两份IntHaskell 中的值并获得结果Float 我尝试这样做 foo Int gt Int gt Float foo a b fromRational a b 但 GHC 版本 6 12 1 告诉我 无法将预期类型 Intege
  • 我可以在C中直接比较int和size_t吗?

    我可以比较一个int and a size t像这样的变量 int i 1 size t y 2 if i y Do something 或者我必须输入其中之一 只要满足以下条件 它就是安全的int为零或正数 如果它是负数 并且size t
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 如何在PL/SQL中模拟32位有符号整数溢出?

    您知道如何在 Oracle PL SQL 中模拟 32 位整数溢出吗 例如 2147483647 1 2147483648 or 2147483648 1 212147483647 我尝试了 PLS INTEGER 但它引发了溢出异常 我终

随机推荐

  • 解决Vue打包上线之后部分CSS不生效

    首先注释掉webpack prod conf js中下面的代码 new OptimizeCSSPlugin cssProcessorOptions config build productionSourceMap safe true map
  • 2023 年 06 月编程语言排行榜,推荐一份新手自学python的学习路线

    马上公布了6月的编程语言排行榜 python还是稳稳的第一呀 一起来看看吧 Tiobe编程排行前15名 Python 是一种面向对象 解释型的脚本语言 同时也是一种功能强大而完善的通用型语言 相比其他编程语言 比如 Java Python
  • 爬楼梯问题(DP、DFS、排列组合、递归)

    问题描述 假设你现在正在爬楼梯 楼梯有 n 级 每次你只能爬 1级或者 2级 那么你有多少种方法爬到楼梯的顶部 我们规定刚开始在第0层 下面介绍4种方法 1 动态规划 dp n 表示到达第n层台阶有dp n 种方法 转移方程 dp n dp
  • 多路复用

    1 多路复用的基本概念 多路复用 multiplexing 简称复用 是通信技术中的基本概念 多路复用多用在电路交换技术中 多路复用 Multiplexing 链路 网络资源 如带宽 划分为 资源片 将资源片分配给各路 呼叫 calls 每
  • Microsoft Edge浏览器崩溃,错误代码: STATUS_STACK_BUFFER_OVERRUN

    11日更新 谷歌浏览器升级后也有这个问题了 参照9日更新设置一下就可以 不过要设置的是chrome exe 具体步骤可以参考 Google Chrome谷歌浏览器崩溃 错误代码 STATUS STACK BUFFER OVERRUN 刘墨泽
  • 微信小程序分享页面,decodeURIComponent()解码的参数的坑

    相信不少同学在开发微信小程序的开发中 有不少同学涉及到分享的功能 分享api我们可以通过查阅微信官方文档知道onShareAppMessage方法 其中这个方法接受一个path参数 也就是我们要分享的页面 当path带参数时 我们知道 后面
  • flex grid布局

    一 flex布局 1 flex direction 属性属性决定主轴的方向 即项目的排列方向 row 默认值 主轴为水平方向 起点在左端 row reverse 主轴为水平方向 起点在右端 column 主轴为垂直方向 起点在上沿 colu
  • selenium java环境_Selenium+Java 环境搭建

    从事开发工作一年 测试工作三年 一直希望能够做自动化方面的测试 但因为各种缘由一直没做成 终于有时间自己学学 因为有一些java基础 所以从Selenium Java开始 搭建Selenium Java环境过程发生很多问题 主要是浏览器版本
  • android 解决java.lang.IllegalArgumentException: The key must be an application-specific resource id

    2022 11 20 16 31 23 832 20933 20933 com example myapplication E AndroidRuntime FATAL EXCEPTION main Process com example
  • 微信小程序实现的一个登录页面Demo

    微信小程序登录页面示例代码 包括了获取验证码按钮等30秒点一次功能和勾选同意用户条款的功能 仅供参考 效果图如下 wxml文件
  • 改变函数中的this指向

    1 bind 方法 1 不调用函数 可以改变 this 指向 2 fun apply thisArg arg1 arg2 3 thisArg 在fun运行时指向的this值 4 arg1 arg2 传递的其它参数 bind 方法不调用函数
  • JVM记一次堆内存溢出OutOfMemoryError: Java heap space

    项目场景 前段时间现场报了一个内存溢出的OutOfMemoryError Java heap space的问题 这个问题十分典型 所以记录下来 希望能帮助到看这篇文章的朋友 问题描述 问题项目 这个问题出现在省网的BOSS系统 这是一个BS
  • led灯条串联图_串联式电路 - 自制12vled灯电路图(五款设计电路图分享)

    2 双电解电容串联式电路 判断要点 这种电路从220V整流出来 有两个电解电容串联滤波 而电容的中心点连接到灯管电路 后面的自激电路也大同小异 高频变压器B次级出来通过灯管灯丝只串有一个高耐压的电容C 这种类型的电路改制时只需要把灯管拆掉
  • [LeetCode] Valid Triangle Number 合法的三角形个数 (Java)

    题目 Given an array consists of non negative integers your task is to count the number of triplets chosen from the array t
  • 使用Mask-RCNN训练自己的数据集看这一篇就够了,从制作数据集开始一步步教你如何玩转Mask-RCNN(保姆级教程)

    一 安装labelme 深度学习算法等基于神经网络的算法都是基于数据驱动的 数据的好坏会影响你最后生成的模型的好坏 在使用Mask RCNN时 第一件事就是标注数据集 这里我们默认你已经配置好了anaconda的环境 如果你没有配置好可以参
  • 大一上--数科作业(连载完结篇)

    说明 read me please 本篇目旨在讲解 所附代码为片段截取式 每一个片段侧重于展现一项功能 不同片段各有省略和重合部分 完整项目代码详见GitHub哦 注意看代码注释 可以说是 相 当 之 详 细 不吹 目录 功能要求 流程概况
  • python3 杀死进程

    在windows10杀死进程 exe os system taskkill f im s exe 转载于 https www cnblogs com shaosks p 10112934 html
  • Idea HTTP Proxy代理设置

    我们开发项目时 经常会和第三方接口打交道 有些第三方项目为了安全起见 会把项目部署在 内网 环境 不对外暴露 通常会提供VPN代理才能访问到资源 以IDEA开发举例 配置HTTP代理的方式如下 左上角File gt Setting 找到如下
  • veracrypt源码编译

    环境准备 1 windows7 旗舰版 64位 2 vs2010专业版 VS2010 旗舰版和专业版 下载 3 Microsoft Visual C 1 52 microsoft visual c 1 52 编译16位程序VC版本 16位
  • 查询及删除重复记录的方法

    一 1 查找表中多余的重复记录 重复记录是根据单个字段 peopleId 来判断 select from people where peopleId in select peopleId from people group by peopl