Найти и удалить повторяющиеся строки из таблицы SQL Server - PullRequest
0 голосов
/ 26 марта 2020

Я использую SQL серверную базу данных, и у меня есть datetime тип данных столбца datetime. Некоторые строки в столбце datetime являются дубликатами. Как удалить дублирующиеся строки и таблицу сортировки по datetime?

T- SQL:

SELECT
    [datetime]
FROM [database].[dbo].[data]

Результат:

datetime
2020-03-18 09:18:00.000
2020-03-18 09:19:00.000
2020-03-18 09:20:00.000
.............
.............
.............
2020-03-18 09:19:00.000
2020-03-18 09:20:00.000

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 26 марта 2020

Если я правильно понимаю, вы просто хотите:

SELECT DISTINCT [datetime]
FROM [database].[dbo].[data]
ORDER BY [datetime];

Примечание: datetime - это недопустимое имя для столбца, поскольку это имя типа в SQL Server.

Если вы действительно хотите удалить строки, используйте;

with todelete as (
      select d.*,
             row_number() over (partition by [datetime] order by [datetime]) as seqnum
      from [database].[dbo].[data]
     )
delete from todelete
    where seqnum > 1;

SQL таблицы представляют неупорядоченные наборы. Итак, если вы хотите увидеть результаты в определенном порядке, вам нужно order by в запросе, как в первом примере.

...