解析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
- sqlserver中刪除重複資料SQLServer
- mysql 刪除表中重複的資料MySql
- MS SQL Server 刪除重複行資料SQLServer
- excel刪除重複資料保留一條 如何刪掉重複資料只留一條Excel
- ORACLE批量刪除無主鍵重複資料Oracle
- Oracle中刪除表中的重複資料Oracle
- 事件溯源投影模式:重複資料刪除策略 - domaincentric事件模式AI
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI
- mysql 刪除重複項MySql
- 刪除oracle重複值Oracle
- JavaScript 刪除重複字元JavaScript字元
- 【常用方法推薦】如何刪除MySQL的重複資料?MySql
- oracle刪除重資料方法Oracle
- VSCode刪除重複的空行VSCode
- JavaScript 刪除字串重複字元JavaScript字串字元
- PostgreSQL:資料庫的建立與刪除SQL資料庫
- JavaScript陣列刪除重複元素JavaScript陣列
- JavaScript 刪除陣列重複元素JavaScript陣列
- Remove Duplicate Letters 刪除重複元素REM
- 刪除重複id的記錄
- JavaScript刪除字串中重複字元JavaScript字串字元
- JavaScript陣列刪除重複內容JavaScript陣列
- MySQL資料庫中刪除重複記錄的方法總結[推薦]MySql資料庫
- MariaDB刪除重複記錄效能測試
- 刪除排序陣列中的重複項排序陣列
- 節點操作(刪除,複製)/案例1:刪除留言板的留言 /案例2:動態生成表格
- PostgreSQL表增加/刪除欄位是否會重寫表SQL
- postgresql怎麼刪除SQL
- C# 批次刪除Excel中的重複行C#Excel
- ES6刪除字串中重複的元素字串
- 刪除有序陣列中的重複項 II陣列
- 刪除字串中的所有相鄰重複項字串
- sql刪除重複記錄只保留一條SQL
- 刪除資料
- whk我【資料刪除】你個【資料刪除】的