首页 > 数据库 >SQL删除重复的记录(只保留一条)

SQL删除重复的记录(只保留一条)

时间:2023-05-23 10:34:52浏览次数:42  
标签:aa 删除 bb 重复 UNION SQL -- SELECT

首先新建表:

--创建示例表
CREATE TABLE t
(id INT IDENTITY(1,1) PRIMARY KEY,a VARCHAR(10),b VARCHAR(10)
)
--插入数据
INSERT INTO t 
SELECT 'aa','bb' UNION ALL
SELECT 'a1','bgb' UNION ALL
SELECT 'aa','bb' UNION ALL
SELECT 'a2','bb' UNION ALL
SELECT 'aa3','beeb' UNION ALL
SELECT 'aa','bb' UNION ALL
SELECT 'a2','bb' 

 

查询重复数据:可看到重复数据为:[a2,bb] 重复2次,[aa,bb] 重复3次

--查询重复数据
SELECT a,b,COUNT(*) count FROM t GROUP BY a,b

 

删除重复数据 (重复数据只保留1条):

方法一

--首先通过子查询取出 id 最小的不重复行,然后通过 NOT IN 删除重复数据
DELETE FROM t WHERE id NOT IN(
SELECT MIN(id) FROM t GROUP BY a,b
)

 

方法二

--首先通过 PARTITION BY 对 a,b 列进行分区排序并生成序号列,然后将序号大于 1 的行删除,即删除了重复数据
DELETE a 
FROM (SELECT ROW_NUMBER() OVER (PARTITION BY a,b ORDER BY ID) num FROM t) a 
WHERE num>1

标签:aa,删除,bb,重复,UNION,SQL,--,SELECT
From: https://www.cnblogs.com/tyxajh/p/17422552.html

相关文章

  • OA 统计宣传品SQL
    旧SELECTb.fd_tjrASid,CONVERT(VARCHAR(10),h.doc_create_time,112)ascreatetime,i.fd_login_nameASusercode,c.fd_nameASxm,k.fd_nameaspost,b.fd_shrASshr,CONVERT(nvarchar(100),CAST(b.fd_shmobileASdecimal(38,0)))......
  • 代码随想录算法训练营第9天 | ●28. 实现 strStr() ●459.重复的子字符串 ●字符串总
     第四章 字符串part02今日任务  ● 28. 实现 strStr()● 459.重复的子字符串● 字符串总结 ● 双指针回顾   详细布置  28. 实现 strStr()  (本题可以跳过) 因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问......
  • 代码随想录算法训练营第11天 | ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重
     第五章 栈与队列part02今日内容:  ●  20. 有效的括号●  1047. 删除字符串中的所有相邻重复项●  150. 逆波兰表达式求值  详细布置   20. 有效的括号  讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。  大家先自己思考一下 有......
  • #yyds干货盘点#SQL 语法
    数据库和表数据库通常有1个或多个表组成,每个表都有一个表名,如”Users”、”Sales”等,表中存储的就是数据,一行数据我们就称为一个记录。例如,这是一个表名为”Users”的表:IdLastNameFirstNameAddressCity1AdamsJohnOxfordStreetLondon2BushGeorgeFifthAvenueNewYork3CarterThomasC......
  • sql--每天两道sql题,天天健康好身体_第六天
    每天会在网上找两三道sql题练习练习,提高自己的sql语句的使用能力(先自己思考出答案,再和别人的答案做一下对比,然后深入思考一下)以下是四个表信息: 问题1:查询同名学生名单并统计同名人数答案1:selectsname,count(sid)fromstudent_info_tablegroupbysnamehavingcount(......
  • 这可能是最全面的MySQL面试八股文了
    什么是MySQLMySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。数据库的三大范式第一范式1NF确保数据库表字段......
  • MySQL数据基础知识整理—3
    聚合函数我们先来看下定义:    在数据库中,聚合函数是指能够对一组数据进行计算并返回一个单一值的函数,这个单一值通常是对这组数据的总体统计结果。    简单来说,就是数据库提供给用户的一种常用函数,其中包括和,平均值,最大值,最小值等。下面我也会给出几个比较常用的聚合......
  • 今日学习简单sql注入
    一般的sql注入思路:看是否有注入点的方式1.and1=1正确;and1=2错误(原因:逻辑运算的判断)方式2.随便输入一串字符看是否报错,如果报错或者跳转说明有检测大部分没漏洞。数据库版本(version())5.7.22-0ubuntu0.16.04.1数据库(database())mozhe_Discuz_StormGroup操作系统(@@version_comp......
  • sqli-lib通关笔记
    因为好久都没有联系过SQL注入了,打算重新拾起渗透方向的能力,去他妈的运维,老子才不要做运维,被傻逼公司给骗了,当了一年的运维,白白浪费了一年。第一关先查看一下代码: 真正的关于注入的核心语句就只有中间的select查询语句,一是先看是什么闭合,第二再看有没有过滤没有任何的......
  • MySQL-Zabbix-5.0监控MySQL
    zabbix官网:https://www.zabbix.com/cn系统版本:CentOS-7.6zabbix版本:5.0LTS1、安装zabbix1.更新yum源#rpm-Uvhhttps://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm#yumcleanall2.安装Zabbixserver,Web前端,agent#yuminstallza......