Удалить дубликаты, используя группу и имея - PullRequest
0 голосов
/ 28 января 2019

Это мой первый пост.Я видел похожие вопросы, но не понял ответа.Я прошу прощения, если это было опубликовано ранее.

У меня проблема с синхронизацией календаря, которая дублировала несколько встреч.Я хочу удалить все встречи, кроме оригинала.Я положил SQL ниже, чтобы сгруппировать встречи.Но я не могу удалить группу, и я попытался выполнить дополнительный запрос, но у вас не может быть нескольких столбцов.

Таблица называется Appts.Я собирался использовать время напоминания, чтобы отделить оригинал от дубликатов.

Попытка 1:

select startdate, starttime, subject, count(*) 
from appts 
group by startdate, starttime, subject 
having count (*) > 3

Попытка 2:

DELETE FROM appts
WHERE subject IN (Select startdate, starttime, subject, count(*) 
                 from appts 
                 group by startdate, starttime, subject 
                 having count (*) > 3)

1 Ответ

0 голосов
/ 28 января 2019

вы можете использовать cte, как показано ниже (если ваш dbms sql сервер)

with cte as
(
select startdate, starttime, subject, count(*) from appts 
group by startdate, starttime, subject having count (*) > 3
) delete from cte
...