#sql #sqlite #temp-tables
Вопрос:
Как вы можете видеть ниже, я могу выбрать все номера строк, которые являются дубликатами. Я идентифицировал их с помощью оконной функции ROW_NUMBER() Хотя я хочу удалить их из базы данных.
Как я могу изменить свой код, чтобы удалить выявленные дубликаты, так как в настоящее время я получаю сообщение об ошибке
WITH RowNumCTE AS ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY ParcelID, PropertyAddress, SalePrice, SaleDate, LegalReference ORDER BY UniqueID ) row_num FROM housing_data ) SELECT * FROM RowNumCTE WHERE row_num gt; 1
- Дубликаты идентифицируются как имеющие номер строки больше 1.
Спасибо
Комментарии:
1. Можете ли вы показать ошибку?
Ответ №1:
Я нашел решение. Я использовал
DELETE FROM housing_data WHERE ROWID NOT IN ( SELECT MIN(ROWID) FROM housing_data GROUP BY ParcelID, PropertyAddress, SalePrice, SaleDate, LegalReference );