相关疑难解决方法(0)

删除PostgreSQL中的重复记录

我在PostgreSQL 8.3.8数据库中有一个表,它没有键/约束,并且有多行具有完全相同的值.

我想删除所有重复项,每行只保留1份.

特别是有一列(称为"密钥")可用于识别重复(即每个不同的"密钥"应该只存在一个条目).

我怎样才能做到这一点?(理想情况下使用单个SQL命令)在这种情况下,速度不是问题(只有几行).

sql postgresql duplicates

94
推荐指数
8
解决办法
6万
查看次数

按ID删除数百万行的最佳方法

我需要从PG数据库中删除大约200万行.我有一个我需要删除的ID列表.但是,我尝试这样做的任何方式都需要几天时间.

我尝试将它们放在一个表中,并在100个批次中进行.4天后,这仍然在运行,只删除了297268行.(我必须从ID表中选择100个id,删除该列表中的IN,从ids表中删除我选择的100个).

我试过了:

DELETE FROM tbl WHERE id IN (select * from ids)
Run Code Online (Sandbox Code Playgroud)

那也是永远的.很难判断多久,因为我看不到它的进展直到完成,但查询仍然在2天后运行.

当我知道要删除的特定ID时,只需要寻找从表中删除的最有效方法,并且有数百万个ID.

sql postgresql bigdata postgresql-performance sql-delete

63
推荐指数
2
解决办法
5万
查看次数

在SQL中创建临时表

我正在尝试创建一个临时表,只选择某个数据register_type.我写了这个查询,但它不起作用:

$ CREATE TABLE temp1
(Select 
    egauge.dataid,
    egauge.register_type,
    egauge.timestamp_localtime,
    egauge.read_value_avg
from rawdata.egauge
where register_type like '%gen%'
order by dataid, timestamp_localtime ) $
Run Code Online (Sandbox Code Playgroud)

我正在使用PostgreSQL.
你能告诉我查询有什么问题吗?

sql postgresql temp-tables

49
推荐指数
2
解决办法
8万
查看次数