2017-09-23 53 views
0

查看示例表格,其中日期1/3到1/5的唯一區別是日期字段。當唯一的區別是增量日期字段時,如何刪除Redshift中的重複字段?

 
Date, ID, State, Amount 
1/1/2017, 123, A, 1 
1/2/2017, 123, B, 1 
1/3/2017, 123, C, 1 
1/4/2017, 123, C, 1 
1/5/2017, 123, C, 1 
1/6/2017, 345, B, 1 

如何刪除列ID,狀態,金額的重複行,所以它看起來像這樣?

 
Date, ID, State, Amount 
1/1/2017, 123, A, 1 
1/2/2017, 123, B, 1 
1/3/2017, 123, C, 1 
1/6/2017, 345, B, 1 

回答

0
select min(date) as date, id, state, amount 
from  some_table_name_you_never_disclosed 
group by id, state, amount; 

BTW,date是SQL92保留關鍵字,所以你可能想改變這種列名。

0

您可以創建一個臨時表和存儲被刪除重複記錄作爲

CREATE TEMPORARY TABLE temp 
AS 
SELECT DATE, 
     ID 
FROM (SELECT DATE, 
      ID, 
      ROW_NUMBER() OVER (PARTITION BY ID,State,Amount ORDER BY DATE ASC) AS rnk 
     FROM your_table_name) 
WHERE rnk > 1 

然後使用delete語句作爲

DELETE 
FROM your_table_name USING temp 
WHERE your_table_name.date = temp.date 
AND your_table_name.id = temp.id 
相關問題