你真的会玩SQL吗?删除重复数据且只保留一条

摘要:
在网上看过一些解决方法我在此给出的方法适用于无唯一ID的情形表:TB_MACVideoAndPicture字段只有2个:mac,contentmac作为ID,正常情况下mac数据是唯一的,由于操作失误导致数据插入多次,导致出现多个mac,content重复数据,现在只保留一条,删除多余的大体思想是给重复数据一个自增ID,过滤出每组里面最小ID,删除原数据中所有重复数据再将最小ID插入--查询出所有

在网上看过一些解决方法

我在此给出的方法适用于无唯一ID的情形

表:TB_MACVideoAndPicture 字段只有2个:mac,content

mac作为ID,正常情况下mac数据是唯一的,由于操作失误导致数据插入多次,导致出现多个mac,content重复数据,现在只保留一条,删除多余的

大体思想是给重复数据一个自增ID,过滤出每组里面最小ID,删除原数据中所有重复数据再将最小ID插入

 --查询出所有重复数据,并给定递增id
 SELECT IDENTITY( INT,1,1 ) ASid ,
        mac ,
        content 
 INTO#tmp
 FROMTB_MACVideoAndPicture
 WHERE  mac IN ( SELECTmac
                  FROMTB_MACVideoAndPicture
                  GROUP BYmac ,content
                  HAVING    COUNT(*) > 1)
 ORDER BYmac ,content
 --删除原表中所有重复数据
 DELETE FROMTB_MACVideoAndPicture
 WHERE  mac IN ( SELECT  mac FROM#tmp )
 --插入id最小的重复数据到原表
 INSERT INTOTB_MACVideoAndPicture
        SELECT  UPPER(mac) mac ,
                content 
        FROM#tmp a
        WHERE   id IN ( SELECT  MIN(id)
                        FROM#tmp b
                        WHERE   a.mac = b.mac AND a.content =b.content
                        GROUP BYmac ,content )
 DROP TABLE #tmp

此处用到了临时表

免责声明:文章转载自《你真的会玩SQL吗?删除重复数据且只保留一条》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java设计模式之状态模式详解C#获取类库(DLL)的绝对路径下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mac find 去除 “Permission denied” 信息的方法

Mac 下查找文件,最简单的方法应该是 mdfind filename 等同于 mdfind -name filename 不过,mdfind 貌似无法查找隐藏文件,比如,你要查找.zshrc,那么,用mdfind .zshrc 将一无所获。 此时,我们还是需要用回 find 命令。但如果我们用 find / -name .zshrc 我们将看到满屏的p...

拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具

本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 最近接个任务,用webhook做了个代码提交监听功能,就是有人向远程仓库提交代码后,会在企业微信群内发送一条消息,类似 @XXX 在XXX时间,向XXX项目提交 XXXX 代码 这样的文案。 至于为啥要做这么个工具,没办...

qt嵌入式html和本地c++通信方式

前沿:我们在做qt项目的时候,通常会把某个html网页直接显示到应用程序中。比如绘图。直接把html形式的图标嵌入到应用程序中 但是我们需要把数据从后台c++端传到html端,实现显示。qt实现了相关的方法 程序运行截图 一。先看客户端js代码     <script type="text/javascript" src="http://t.zou...

mac 安装xcode命令行工具

转载:https://segmentfault.com/a/1190000018045211?utm_source=tag-newest 1、启动终端,输入命令:xcode-select --install,然后一路点击安装 2、安装成功后,输入命令:gcc -v 来查看是否成功 若是第一步报错,提示为:xcode-select: error: comma...

uniapp打包h5页面ios唤起软键盘踩坑

问题:页面有很多input框,上面的input输入框,当虚拟键盘出来时没问题,但是下面的input输入框,就会出现问题,input输入框会跑到键盘后面。 网上一阵百度,找到原因:安卓手机中唤起软键盘时页面会压缩webview的高度,窗口会执行resize事件,但ios并不会。网上各种百度,尝试,都失败了,在快放弃时,找到一个可行的。直接贴代码: 1...

mac 命令行大杂烩

一、实用的 1、代替 cat 的工具:bat,支持语法高亮、同时显示行号,使用: bat xx.yyy 安装:brew install bat 2、man 命令的替代品:tldr 安装:brew install tldr 二、好玩的 1、命令行显示动态的火焰,运行: aafire 安装: brew install aalib 2、命令行显示黑客帝国数字雨,...