如何从表中删除某些列(但不是全部)在postgresql中重复的行?

qua*_*ack 1 sql postgresql

我读过以前的问题,但它们与我的不相似(例如,我没有唯一的标识符).

说这是我的表行:

  id     string       x    y    z    time_x                 
10318    'hello'   33700  5053  8  2015-07-03 12:39:49.61408
14071    'hello'   33700  5053  8  2015-07-03 12:39:49.61408
Run Code Online (Sandbox Code Playgroud)

基本上一切都是相同的,除了行的id.如何识别这些情况并删除冗余行?

注意:并非表中的所有行都是重复的.应保留常规行.

小智 5

假设表名是tbl

Delete from tbl where id not in (select min(id) from tbl group by string, x, y, z)