У меня есть таблица в Redshift, у которой есть несколько повторяющихся строк, которые мне нужно как-то удалить. Я хочу сохранить только одну строку для каждого уровня user_id, уровня и типа. Пользователь может повышать уровень только один раз за уровень. Пример таблицы выглядит следующим образом:Нужна помощь в удалении повторяющихся строк в Amazon Redshift DB
version date timestamp user_id level type
1.0.0 2016-05-10 2016-05-10 14:53:58 1234 13 levelup
1.0.0 2016-05-10 2016-05-10 14:53:25 1234 13 levelup
1.0.0 2016-05-10 2016-05-10 14:52:03 1234 13 levelup
1.0.0 2016-05-10 2016-05-10 14:52:03 1234 13 levelup
1.0.0 2016-05-10 2016-05-10 14:52:03 1234 13 levelup
Я пытался смотреть в запросы, которые работают для других баз данных, но ничего, что бы работать с Redshift не найдены. Используя TOP
или min(timestamp)
, я также не могу использовать LIMIT
, даже если знаю, сколько существует дубликатов. Я считаю, что использование таблицы самосоединения не будет работать, так как нет ничего уникального для сравнения?
Есть ли какое-либо решение, которое не требует, чтобы я копировал все уникальные строки в новую таблицу? Благодаря!
Это, казалось, вернуться все строки? Сначала я сделал SELECT, так как я устал от удаления данных, пока не уверен, что он нацелен на правильные строки. Но я вижу, что это должно быть нацелено на всех, кроме одной назначенной строки 1, однако, похоже, это не так. – eriye9
Привет, я изменил запрос. Можете ли вы попробовать повторить выбор. Чтобы это сработало, вам нужно создать столбец идентификатора. Можете ли вы изменить таблицу, чтобы иметь уникальный идентификатор? –
К сожалению, я не могу добавить столбец в эту таблицу. У меня нет уникальных идентификаторов, с которыми я сталкиваюсь. – eriye9