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进行中文全文检索
May 27 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
PostgreSQL自动更新时间戳实例代码
Nov 27 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
Dec 06 PostgreSQL
Rust 连接 PostgreSQL 数据库的详细过程
Jan 22 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL事务回卷实战案例详析
Mar 25 PostgreSQL
postgreSQL数据库基础知识介绍
Apr 12 PostgreSQL
PostgreSQL逻辑复制解密原理解析
Sep 23 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
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
python pygame模块编写飞机大战
2018/11/20 Python
python解释器spython使用及原理解析
2019/08/24 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Python网页解析器使用实例详解
2020/05/30 Python
详解如何修改python中字典的键和值
2020/09/29 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
区域总监的岗位职责
2013/11/21 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
质量保证书范本
2014/04/29 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
晚会开幕词
2015/01/28 职场文书
工会积极分子个人总结
2015/03/03 职场文书
千手观音观后感
2015/06/03 职场文书
走进科学观后感
2015/06/18 职场文书