COUNT и удаление количества дубликатов из таблицы с миллиардом строк - PullRequest
1 голос
/ 18 октября 2019

Мне нужно знать, сколько повторяющихся строк в таблице, которая содержит миллиард строк

И затем мне нужно удалить их по частям, если это возможно.

В этой таблице 32 столбца иЯ хочу проверить, есть ли повторяющиеся строки с одинаковыми значениями во всех 32 столбцах.

Я пробовал 1)

SELECT COUNT(*) FROM (
SELECT COLUUMN1,COLUMN2,COLUMN3....COLOUMN32 ,COUNT(*)
FROM TABLE 
GROUP BY 
COLUUMN1,COLUMN2,COLUMN3....COLOUMN32
HAVING COUNT(*)>1)

и 2)

Iтакже пытался с ROW_NUMBER

Не удалось выделить место для объекта 'dbo.SORT временное хранилище выполнения: 141881590939648' в базе данных 'tempdb', поскольку файловая группа 'PRIMARY' заполнена. Создайте место на диске, удалив ненужные файлы, отбросив объекты в файловой группе, добавив дополнительные файлы в файловую группу или установив автоматический рост для существующих файлов в файловой группе

Это происходит вечно и завершается с ошибкой tempdb.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Я использовал ниже

SELECT -COUNT_BIG () Дублирование в #T FROM (таблица SELECT DISTINCT. FROM таблица) X

Вставка в #T SELECT COUNT_BIG(*) FROM Table

ВЫБРАТЬ СУММУ (DUP) ОТ # T

DROP TABLE # T

Потребовалось несколько часов для запуска, поскольку в этой таблице миллиарды записей. С уважением,

Чинна.

0 голосов
/ 19 октября 2019

Используйте этот код, чтобы удалить все повторяющиеся записи, а затем вставьте одну запись для каждой другой записи

SELECT * INTO #A
FROM TABLE
GROUP BY COLUUMN1,COLUMN2,COLUMN3....COLOUMN32
HAVING COUNT(*)>1

DELETE T
FROM TABLE AS T
INNER JOIN #A AS A ON T.COLUUMN1=A.COLUUMN1 AND T.COLUMN2=A.COLUMN3 AND .... AND T.COLOUMN32=A.COLOUMN32

INSERT INTO TABLE
SELECT * FROM #A

DROP TABLE #A

Если вы получаете ошибку для больших данных, используйте «SELECT TOP (10000) * INTO #A» и выполнитеэтот код умножается на это, чтобы каждый раз удалять несколько лишних записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...