удалите дубликаты sqlite с помощью временной таблицы

#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 );