在巨大的10亿数据集上使用SQL进行重复数据删除

时间:2015-06-23 19:21:19

标签: postgresql amazon-redshift

我在尝试重复删除包含大量数据的表时遇到内存不足的问题。

场景:

Column A      |    Column B ( Date )

  Value1            Date1
  Value1            Date2
  Value2            Date3
  Value2            Date4

我需要对这两列进行重复数据删除,我需要使用b列选择最新记录。

让我们说date2和date4是最新的日期。我的输出应该是:

Column A      |    Column B ( Date )

  Value1            Date2
  Value2            Date4

目前我正在使用以下查询。使用更少的内存是否有更好的方法。

CREATE TABLE UNIQUE_TABLENAME AS (
SELECT a.column a, a.column b, a.column c, a.column d
from tablename a,
(select column a,max(column b) from tablename group by column a)b
where a.column a = b.column a
and a.column b= b.column b)

提前致谢!

1 个答案:

答案 0 :(得分:0)

select distinct on (col_a) 
    col_a as value, col_b as "date"
from t
order by col_a, col_b desc

检查distinct on