postgresql 删除重复数据案例详解_PostgreSQL

来源:脚本之家  责任编辑:小易  

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 删除check约束的实现postgresql删除主键的操作PostgreSQL 实现快速删除一个用户postgresql 实现多表关联删除Postgresql创建新增、删除与修改触发器的方法PostgreSQL删除更新优化操作mybatis postgresql 批量删除操作方法

  • 本文相关:
  • postgresql数据库安装部署搭建主从节点的详细过程(业务库)
  • 浅谈postgresql表分区的三种方式
  • postgresql 允许远程访问设置的操作
  • postgresql判断字符串是否包含目标字符串的多种方法
  • postgresql运维之远程迁移操作
  • postgresql 查看sql语句执行效率的操作
  • postgres 使用存储过程批量插入数据的操作
  • postgres之jsonb属性的使用操作
  • phppgadmin 常见错误和问题的解决办法
  • postgresql中like和ilike操作符的用法详解
  • pgAdmin如何使用postgresql应该怎么设置?
  • 怎么把postgresql的数据导出成sql,我有pgAdmin3
  • 如何合理使用数据库冗余字段的方法
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页postgresql 删除重复数据的几种方法小结postgresql 删除check约束的实现postgresql删除主键的操作postgresql 实现快速删除一个用户postgresql 实现多表关联删除postgresql创建新增、删除与修改触发器的方法postgresql删除更新优化操作mybatis postgresql 批量删除操作方法postgresql数据库安装部署搭建主从节点的详细过程(业务库)浅谈postgresql表分区的三种方式postgresql 允许远程访问设置的操作postgresql判断字符串是否包含目标字符串的多种方法postgresql运维之远程迁移操作postgresql 查看sql语句执行效率的操作postgres 使用存储过程批量插入数据的操作postgres之jsonb属性的使用操作phppgadmin 常见错误和问题的解决办法postgresql中like和ilike操作符的用法详解postgresql 角色与用户管理介绍windows下postgresql数据库的下载windows下postgresql安装图解postgresql中的oid和xid 说明15个postgresql数据库实用命令分postgresql alter语句常用操作小windows postgresql 安装图文教程postgresql 安装和简单使用postgresql 创建表分区postgresql新手入门教程springboot连接使用postgresql数据库的方浅谈postgresql中大小写不敏感问题在windows下手动初始化postgresql数据库教postgresql数据库默认用户postgres常用命postgresql sequence序列的使用详解postgresql 安装和简单使用postgresql数据添加两个字段联合唯一的操postgresql 两表关联更新操作postgre数据库insert 、query性能优化详解postgresql 实现查询某时间区间的所有日期
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved