Существует таблица с дублирующимися строками, в которой все значения столбцов равны:
+------+---------+------------+
| id | value | timestamp |
+------+---------+------------+
| 1 | 500 | 2019-10-12 |
| 2 | 400 | 2019-10-11 |
| 1 | 500 | 2019-10-12 |
+------+---------+------------+
Я хочу сохранить одну из этих равных строк и удалить остальные. Я придумал:
DELETE
FROM
`table` t1
WHERE (
SELECT
ROW_NUMBER() OVER (PARTITION BY id),
FROM
`table` t2
WHERE
t1.id = t2.id
) > 1
Однако это не работает:
Коррелированные подзапросы, которые ссылаются на другие таблицы, не поддерживаются, если их нельзя декоррелировать, например, путем преобразования их в эффективное объединение.
Есть идеи, как удалить повторяющиеся строки?