解析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 刪除重複資料案例詳解的文章就介紹到這了。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2851968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL刪除表中重複資料SQL
- 刪除重複資料
- mongodb刪除重複資料MongoDB
- MySQL刪除重複資料MySql
- 刪除表裡重複資料
- sqlserver中刪除重複資料SQLServer
- Oracle查詢重複資料與刪除重複記錄Oracle
- MS SQL Server 刪除重複行資料SQLServer
- T-SQL 刪除重複資料SQLSQL
- 海量資料處理_刪除重複行
- 根據rowid刪除重複資料
- 通過ROWID刪除重複資料
- Oracle中刪除重複資料的SqlOracleSQL
- mysql 刪除表中重複的資料MySql
- excel刪除重複資料保留一條 如何刪掉重複資料只留一條Excel
- mysql查詢表裡的重複資料方法和刪除重複資料MySql
- Oracle查詢重複資料與刪除重複記錄方法Oracle
- ORACLE批量刪除無主鍵重複資料Oracle
- Python 字串,list排序,刪除重複資料Python字串排序
- Mongodb 刪除重複資料的幾個方法MongoDB
- oracle重複資料的查詢及刪除Oracle
- oracle 刪除重複資料的幾種方法Oracle
- Oracle 刪除重複資料只留一條Oracle
- 刪除重複資料的幾個方法(轉)
- Oracle中刪除表中的重複資料Oracle
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI
- SQL刪除重複資料,只保留一行SQL
- oracle 查詢及刪除表中重複資料Oracle
- mysql 查詢及 刪除表中重複資料MySql
- NetApp FAS Filer的重複資料刪除APP
- T-SQL技術收集——刪除重複資料SQL
- 刪除重複資料的一種高效的方法
- 重複資料刪除和SSD的互補方法
- update,delete與INNER JOIN 以及刪除重複資料delete
- 刪除重複資料的三種sql寫法SQL
- 刪除重復資料
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄) 轉Oracle