Rumah pangkalan data tutorial mysql PostgreSQL删除表中重复数据行

PostgreSQL删除表中重复数据行

Jun 07, 2016 pm 05:31 PM
postgresql

采用PostgreSQL 9.2 官方文档例子为例: 剔除重复行的数据转存到新表weather_temp

采用PostgreSQL 9.2 官方文档例子为例:

CREATE TABLE weather (
city      varchar(80),
temp_lo  int,          -- low temperature
temp_hi  int,          -- high temperature
prcp      real,        -- precipitation
date      date
);

INSERT INTO weather VALUES
('San Francisco', 46, 50, 0.25, '1994-11-27'),
('San Francisco', 43, 57, 0, '1994-11-29'),
('Hayward', 37, 54, NULL, '1994-11-29'),
('Hayward', 37, 54, NULL, '1994-11-29');  --- duplicated row

这里有3中方法:

第一种:替换法

-- 剔除重复行的数据转存到新表weather_temp
SELECT DISTINCT city, temp_lo, temp_hi, prcp, date
INTO weather_temp
FROM weather;
-- 删除原表
DROP TABLE weather;
-- 将新表重命名为weather
ALTER TABLE weather_temp RENAME TO weather;

或者

-- 创建与weather一样的表weather_temp
CREATE TABLE weather_temp (LIKE weather INCLUDING CONSTRAINTS);
-- 用剔除重复行的数据填充到weather_temp中
INSERT INTO weather_temp SELECT DISTINCT * FROM weather;
-- 删除原表
DROP TABLE weather;
-- 将新重命名为weather.
ALTER TABLE weather_temp RENAME TO weather;

通俗易懂,有很多毁灭性的操作如DROP,而且当数据量大时,耗时耗空间。不推荐。

第二种: 添加字段法

-- 添加一个新字段,,类型为serial
ALTER TABLE weather ADD COLUMN id SERIAL;
-- 删除重复行
DELETE FROM weather WHERE id
NOT IN (
SELECT max(id)
FROM weather
GROUP BY city, temp_lo, temp_hi, prcp, date
);
-- 删除添加的字段
ALTER TABLE weather DROP COLUMN id;

需要添加字段,「暂时不知道Postgres是如何处理添加字段的,是直接在原表追加呢,还是复制原表组成新表呢?」,如果是原表追加,可能就会因为新字段的加入而导致分页(一般block: 8k),如果是复制的话那就罪过了。不好。

第三种:系统字段[查看 System Columns]

DELETE FROM weather
WHERE ctid
NOT IN (
SELECT max(ctid)
FROM weather
GROUP BY city, temp_lo, temp_hi, prcp, date
);

针对性强[Postgres独有],但是简单。

PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里

推荐阅读:

在PostgreSQL中如何删除重复记录

Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装

linux

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MySQL dan PostgreSQL: Perbandingan prestasi dan petua pengoptimuman MySQL dan PostgreSQL: Perbandingan prestasi dan petua pengoptimuman Jul 13, 2023 pm 03:33 PM

MySQL dan PostgreSQL: Perbandingan Prestasi dan Petua Pengoptimuman Semasa membangunkan aplikasi web, pangkalan data adalah komponen yang sangat diperlukan. Apabila memilih sistem pengurusan pangkalan data, MySQL dan PostgreSQL adalah dua pilihan biasa. Kedua-duanya ialah sistem pengurusan pangkalan data hubungan sumber terbuka (RDBMS), tetapi terdapat beberapa perbezaan dalam prestasi dan pengoptimuman. Artikel ini akan membandingkan prestasi MySQL dan PostgreSQL dan memberikan beberapa petua pengoptimuman. Perbandingan prestasi membandingkan dua pengurusan pangkalan data

MySQL dan PostgreSQL: Amalan Terbaik dalam Pembangunan Web MySQL dan PostgreSQL: Amalan Terbaik dalam Pembangunan Web Jul 14, 2023 pm 02:34 PM

MySQL dan PostgreSQL: Amalan Terbaik dalam Pembangunan Web Pengenalan: Dalam dunia moden pembangunan web, pangkalan data merupakan komponen penting. Apabila memilih pangkalan data, pilihan biasa ialah MySQL dan PostgreSQL. Artikel ini akan merangkumi amalan terbaik untuk menggunakan MySQL dan PostgreSQL dalam pembangunan web dan menyediakan beberapa contoh kod. 1. Senario yang boleh digunakan MySQL sesuai untuk kebanyakan aplikasi web, terutamanya yang memerlukan prestasi tinggi, kebolehskalaan dan kemudahan penggunaan.

Pelajari fungsi pangkalan data dalam bahasa Go dan laksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan data PostgreSQL Pelajari fungsi pangkalan data dalam bahasa Go dan laksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan data PostgreSQL Jul 31, 2023 pm 12:54 PM

Pelajari fungsi pangkalan data dalam bahasa Go dan laksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan data PostgreSQL Dalam pembangunan perisian moden, pangkalan data adalah bahagian yang amat diperlukan. Sebagai bahasa pengaturcaraan yang berkuasa, bahasa Go menyediakan pelbagai fungsi operasi pangkalan data dan kit alat, yang boleh melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data dengan mudah. Artikel ini akan memperkenalkan cara mempelajari fungsi pangkalan data dalam bahasa Go dan menggunakan pangkalan data PostgreSQL untuk operasi sebenar. Langkah 1: Pasang pemacu pangkalan data dalam bahasa Go untuk setiap pangkalan data

Menggunakan PostgreSQL dalam Go: Panduan Lengkap Menggunakan PostgreSQL dalam Go: Panduan Lengkap Jun 18, 2023 am 09:28 AM

Bahasa Go ialah bahasa pengaturcaraan yang pantas dan cekap sesuai untuk membina perkhidmatan web dan aplikasi bahagian belakang. PostgreSQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang menjanjikan untuk memberikan kebolehpercayaan, skalabiliti dan keselamatan data yang lebih tinggi. Dalam artikel ini, kami akan mendalami penggunaan PostgreSQL dalam Go dan memberikan beberapa contoh dan petua kod praktikal. Memasang dan menyediakan PostgreSQL Pertama, kita perlu memasang dan menyediakan PostgreSQL. Boleh didapati di laman web rasmi

MySQL dan PostgreSQL: Keselamatan Data dan Strategi Sandaran MySQL dan PostgreSQL: Keselamatan Data dan Strategi Sandaran Jul 13, 2023 pm 03:31 PM

MySQL dan PostgreSQL: Keselamatan Data dan Strategi Sandaran Pengenalan: Dalam masyarakat moden, data telah menjadi bahagian penting dalam perniagaan dan kehidupan peribadi. Untuk sistem pengurusan pangkalan data, keselamatan data dan strategi sandaran adalah penting, kedua-duanya untuk melindungi data daripada kehilangan atau kerosakan dan untuk memastikan kebolehpercayaan dan integriti data yang dipulihkan. Artikel ini akan memberi tumpuan kepada keselamatan data dan strategi sandaran dua sistem pangkalan data hubungan arus perdana, MySQL dan PostgreSQL. 1. Keselamatan data: (1) Hak pengguna

Bagaimana untuk menggunakan pangkalan data PostgreSQL dalam pengaturcaraan PHP? Bagaimana untuk menggunakan pangkalan data PostgreSQL dalam pengaturcaraan PHP? Jun 12, 2023 am 09:27 AM

Dengan perkembangan teknologi pangkalan data, sistem pengurusan pangkalan data juga menyediakan pelbagai pilihan Pembangun boleh memilih pangkalan data yang paling sesuai mengikut keperluan dan pilihan mereka. Sebagai sistem pangkalan data hubungan sumber terbuka termaju, PostgreSQL semakin menarik perhatian dan penggunaan oleh pembangun. Jadi, bagaimana untuk menggunakan pangkalan data PostgreSQL dalam pengaturcaraan PHP? 1. Pasang dan konfigurasikan pangkalan data PostgreSQL Sebelum menggunakan PostgreSQL, anda perlu memasang dan mengkonfigurasinya. pertama

MySQL dan PostgreSQL: Bagaimana untuk mengoptimumkan prestasi pertanyaan pangkalan data? MySQL dan PostgreSQL: Bagaimana untuk mengoptimumkan prestasi pertanyaan pangkalan data? Jul 12, 2023 pm 03:15 PM

MySQL dan PostgreSQL: Bagaimana untuk mengoptimumkan prestasi pertanyaan pangkalan data? Gambaran Keseluruhan: Prestasi pertanyaan pangkalan data adalah pertimbangan penting semasa membangunkan aplikasi. Prestasi pertanyaan yang baik meningkatkan responsif aplikasi dan pengalaman pengguna. Artikel ini akan memperkenalkan beberapa kaedah untuk mengoptimumkan prestasi pertanyaan pangkalan data, memfokuskan pada dua pangkalan data yang biasa digunakan, MySQL dan PostgreSQL. Pengoptimuman indeks pangkalan data: Indeks pangkalan data merupakan faktor penting dalam meningkatkan prestasi pertanyaan. Indeks boleh mempercepatkan carian data dan mengurangkan masa pengimbasan pertanyaan.

Perancangan dan penskalaan kapasiti pangkalan data: MySQL lwn. PostgreSQL Perancangan dan penskalaan kapasiti pangkalan data: MySQL lwn. PostgreSQL Jul 12, 2023 pm 01:43 PM

Perancangan dan pengembangan kapasiti pangkalan data: MySQL vs. PostgreSQL Pengenalan: Dengan perkembangan pesat Internet dan kemunculan era data besar, perancangan dan pengembangan kapasiti pangkalan data telah menjadi semakin penting. MySQL dan PostgreSQL ialah dua sistem pengurusan pangkalan data hubungan (RDBMS) yang popular. Mereka mempunyai ciri yang berbeza dan senario yang boleh digunakan dalam perancangan dan pengembangan kapasiti pangkalan data. Artikel ini akan membandingkan kedua-dua pangkalan data dan memberikan beberapa contoh kod untuk menunjukkan perbezaannya. 1. MySQ

See all articles