postgresql 删除重复数据案例详解


Posted in PostgreSQL onAugust 02, 2021

1.建表

/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : PostgreSQL
 Source Server Version : 110012
 Source Host           : localhost:5432
 Source Catalog        : postgres
 Source Schema         : public

 Target Server Type    : PostgreSQL
 Target Server Version : 110012
 File Encoding         : 65001

 Date: 30/07/2021 10:10:04
*/


-- ----------------------------
-- Table structure for test
-- ----------------------------
DROP TABLE IF EXISTS "public"."test";
CREATE TABLE "public"."test" (
  "id" int4 NOT NULL DEFAULT NULL,
  "name" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL,
  "age" int4 DEFAULT NULL
)
;

-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO "public"."test" VALUES (1, 'da', 1);
INSERT INTO "public"."test" VALUES (2, 'da', 12);
INSERT INTO "public"."test" VALUES (3, 'dd', 80);
INSERT INTO "public"."test" VALUES (4, 'dd', 80);
INSERT INTO "public"."test" VALUES (5, 'd1', 13);

-- ----------------------------
-- Primary Key structure for table test
-- ----------------------------
ALTER TABLE "public"."test" ADD CONSTRAINT "test_pkey" PRIMARY KEY ("id");

2.根据名称获取重复

先看看哪些数据重复了

select name ,count(1)  from test group by name  having count(1)>1

输出.

name        count

da              2

dd              2

3.删除所有重复数据

注意把要更新的几列数据查询出来做为一个第三方表,然后筛选更新。

delete from test where name in (select t.name from (select name ,count(1)  from test group by name  having count(1)>1) t)

4.保留一行数据

这里展示我们需要保留的数据:重复数据,保留ID最大那一条

SELECT
 1. 
FROM
 test 
WHERE
 id NOT IN (
 ( SELECT min( id ) AS id FROM test GROUP BY name ) 
 )

5.删除数据

DELETE 
FROM
 test 
WHERE
 id NOT IN (
 SELECT
  t.id 
 FROM
 ( SELECT max( id ) AS id FROM test GROUP BY name ) t 
 )

到此这篇关于postgresql 删除重复数据案例详解的文章就介绍到这了,更多相关postgresql 删除重复数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PostgreSQL 相关文章推荐
PostgreSQL存储过程实用脚本(二):创建函数入门
Apr 05 PostgreSQL
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
May 21 PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL数据库创建并使用视图以及子查询
Apr 11 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
PostgreSQL逻辑复制解密原理解析
Sep 23 PostgreSQL
postgresql中如何执行sql文件
May 08 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 #PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 #PostgreSQL
浅谈PostgreSQL表分区的三种方式
通过Qt连接OpenGauss数据库的详细教程
postgres之jsonb属性的使用操作
Jun 23 #PostgreSQL
postgresql无序uuid性能测试及对数据库的影响
Jun 11 #PostgreSQL
如何使用PostgreSQL进行中文全文检索
May 27 #PostgreSQL
You might like
thinkphp备份数据库的方法分享
2015/01/04 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
Python的面向对象编程方式学习笔记
2016/07/12 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
浅析python的优势和不足之处
2018/11/20 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
公务员的自我鉴定
2013/10/26 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
导航工程专业自荐信
2014/09/02 职场文书
2015元旦标语横幅
2014/12/09 职场文书
期中考试复习计划
2015/01/19 职场文书
单位租车协议书
2015/01/29 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书