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 相关文章推荐
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
postgres之jsonb属性的使用操作
Jun 23 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
Dec 06 PostgreSQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
Jan 18 PostgreSQL
PostgreSQL聚合函数介绍以及分组和排序
Apr 12 PostgreSQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
Apr 12 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
postgresql之greenplum字符串去重拼接方式
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
基于mysql的论坛(4)
2006/10/09 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
nginx下安装php7+php5
2016/07/31 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
详解Django中的form库的使用
2015/07/18 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
python实现三维拟合的方法
2018/12/29 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
基于FME使用Python过程图解
2020/05/13 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
个人现实表现材料
2014/02/04 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
考试作弊检讨书
2015/01/27 职场文书
员工规章制度范本
2015/08/07 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript