У меня есть таблица, в которой я сохраняю все изменения строк, которые когда-либо происходили. Проблема в том, что в начале приложения была ошибка, из-за которой создавалось несколько копий каждой строки.
Таблица выглядит примерно так:
copies
|ID |CID |DATA
| 1 | 1 | DA
| 2 | 2 | DO
| 2 | 3 | DO (copy of CID 2)
| 1 | 4 | DA (copy of CID 1)
| 2 | 5 | DA
| 1 | 6 | DA (copy of CID 1)
| 2 | 7 | DO
CID уникален в табличных копиях.
Я хочу удалить все дубликаты DATA GROUP BY ID, которые друг за другом отсортированы по CID.
Как видно из таблицы, CID 2 и 3 одинаковы и расположены друг за другом. Я хотел бы удалить CID 3. То же самое с CID 4 и CID 6; между ними нет идентификатора 1, и они являются копиями CID 1.
После удаления дубликатов мне бы хотелось, чтобы таблица выглядела следующим образом:
copies
|ID |CID |DATA
| 1 | 1 | DA
| 2 | 2 | DO
| 2 | 5 | DA
| 2 | 7 | DO
Есть предложения? :)
Я думаю, что мой вопрос был плохо задан, потому что ответ, который кажется всем, кажется, лучший, дает этот результат:
ID | DATA | DATA | DATA | DATA | DATA | DATA | CID |
|Expected | Quassnoi |
1809 | 1 | 0 | 1 | 0 | 0 | NULL | 252227 | 252227 |
1809 | 1 | 0 | 1 | 1 | 0 | NULL | 381530 | 381530 |
1809 | 1 | 0 | 1 | 0 | 0 | NULL | 438158 | (missing) |
1809 | 1 | 0 | 1 | 0 | 1535 | 20090113 | 581418 | 581418 |
1809 | 1 | 1 | 1 | 0 | 1535 | 20090113 | 581421 | 581421 |
CID 252227 и CID 438158 являются дубликатами, но потому что CID 381530 находится между ними; Я хочу оставить это. Это только дубликаты, которые располагаются непосредственно друг за другом при заказе по CID и ID.