相关疑难解决方法(0)

如何删除重复的行?

从相当大的SQL Server表中删除重复行的最佳方法是什么(即300,000多行)?

当然,由于RowID身份字段的存在,行不会是完美的重复.

MyTable的

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server duplicates

1254
推荐指数
31
解决办法
118万
查看次数

在PostgreSQL中删除具有多列的重复行

我有一个表“内容”有以下的列: voterelection_yearelection_typeparty 我需要删除的组合的所有重复行voterelection_year,和我有麻烦搞清楚如何做到这一点。

我执行以下操作:

WITH CTE AS(
SELECT voter, 
       election_year,
       ROW_NUMBER()OVER(PARTITION BY voter, election_year ORDER BY voter) as RN

FROM votes
)
DELETE
FROM CTE where RN>1
Run Code Online (Sandbox Code Playgroud)

基于另一个StackOverflow答案,但似乎这是特定于SQL Server的。我已经看到了使用唯一ID来执行此操作的方法,但是此特定表没有那么豪华。如何采用上述脚本删除需要的重复项?谢谢!

编辑:根据请求,创建带有一些示例数据的表:

CREATE TABLE public.votes
(
    voter varchar(10),
    election_year smallint,
    election_type varchar(2),
    party varchar(3)
);

INSERT INTO votes
    (voter, election_year, election_type, party)
VALUES
    ('2435871347', 2018, 'PO', 'EV'),
    ('2435871347', 2018, 'RU', 'EV'),
    ('2435871347', 2018, 'GE', 'EV'),
    ('2435871347', 2016, 'PO', 'EV'),
    ('2435871347', 2016, 'GE', …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

4
推荐指数
2
解决办法
2767
查看次数

删除 Postgresql 中连续的重复行

我有一个包含 3 列(id、金额、时间)的表。该表根据id升序排列。我想删除除第一个之外在金额列中具有相同值的所有连续行。

例如:

id: 12,15,16,17,19,22
amount: 555,546,546,53,53,500
time:
Run Code Online (Sandbox Code Playgroud)

回答:

id:12,15,17,22    amount: 555,546,53,500    time:
Run Code Online (Sandbox Code Playgroud)

只要连续行在金额列中具有相同的值,连续行的时间列就相同。我在 SO 上搜索但找不到类似的问题

sql postgresql

1
推荐指数
1
解决办法
1465
查看次数

标签 统计

postgresql ×2

sql ×2

duplicates ×1

sql-server ×1

t-sql ×1