GOOGLE ADS

воскресенье, 1 мая 2022 г.

Есть ли способ удалить дубликаты из таблицы с одним столбцом в SQL Server?

Есть ли способ удалить повторяющиеся строки из такой таблицы, не удаляя таблицу и не создавая ее заново с отдельными строками?

DROP TABLE IF EXISTS #temp;
CREATE TABLE #temp (id INT);
INSERT INTO #temp
VALUES (1), (2), (2), (2), (3), (3);


Решение проблемы

Использование CTE и ROW_NUMBER, сгруппированных по указанному столбцу, который вы просматриваете, может аккуратно удалить повторяющиеся значения, поскольку ROW_NUMBER подсчитывается постепенно с повторяющимися значениями агрегации PARTITION BY. Когда при упорядочении обнаруживается новая группировка, ROW_NUMBER сбрасывается до 1, начиная со следующей записи различных сгруппированных значений.

 WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1) AS RN
FROM #temp
)
DELETE FROM CTE WHERE RN<>1

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...