postgresql 重複データ削除 ケーススタディ
2022-01-10 22:36:08
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
出力します。
名前カウント
ダ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削除重複データの内容は、スクリプトの家の前の記事を検索してくださいまたは次の関連記事を閲覧し続けるあなたは将来的に多くのスクリプトホームをサポートすることを願って!.
関連
-
postgresのjsonbプロパティの利用について
-
Centos環境でのPostgresqlのインストールと設定、環境変数の設定Tips
-
Postgresqlの高度なアプリケーションは、セルのアイデアをマージするの詳細
-
postgresqlにおける時間処理のコツ(推奨)
-
Postgresqlのユーザーログインエラーの回数を制限するサンプルコード
-
Postgresqlへのリモートアクセスの設定方法(ファイアウォールの設定またはOFFが必要です。)
-
どのように定期的にLinux上でpostgresqlのデータベースをバックアップする
-
Postgresqlの操作でSQL文の実行効率を表示する
-
Postgresqlのデータマージ、複数のデータを1つの操作にマージする。
-
Postgresqlのデータは、2つのフィールドを追加し、一意の操作を統合する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Postgresqlの行から列への高度な応用と要約のアイデア
-
PostgreSQLのユーザーログイン失敗時の自動ロック解決策
-
PostgresqlのデータベーステーブルのデータをExcel形式にエクスポートする方法(推奨)
-
PostgreSQLで文字列が対象の文字列を含むかどうかを判断する様々な方法
-
Postgresqlのデータベース権限まとめ
-
postgresql いくつかのメソッドは、要約の重複するデータを削除する
-
GROUP BY句での定数使用に関するPostgreSQLの特別な制限について説明します。
-
pgAdmin for postgreSQLでサーバーのデータをバックアップする方法
-
Postgresqlのシーケンススキップの問題を解決する
-
postgresqlのjsonbデータの問い合わせと変更方法