Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Неправильно удаляются дубли  [new]
Kontox
Member

Откуда:
Сообщений: 146
 SELECT
 shop_code,
product_id,
doc_date,
ship_count_mark1,
mark_1,
Базовые_отгрузки,
акционные_отгрузки,
ship_mark2,
mark_2,
Базовые_отгрузки2,
Дополнительные_объемы, COUNT(*)

FROM AOtest.dbo.[finaltab]
  GROUP BY
    shop_code,
product_id,
doc_date,
ship_count_mark1,
mark_1,
Базовые_отгрузки,
акционные_отгрузки,
ship_mark2,
mark_2,
Базовые_отгрузки2,
Дополнительные_объемы
HAVING  COUNT(*) > 1


на выходе 4 строчки, так и должно быть, это правильно!. Их надо удалить (было 916 ,стало 912))

Пробую удалть
;WITH CTE AS(
   SELECT   shop_code,
product_id,
doc_date,
ship_count_mark1,
mark_1,
Базовые_отгрузки,
акционные_отгрузки,
ship_mark2,
mark_2,
Базовые_отгрузки2,
Дополнительные_объемы, 
       RN = ROW_NUMBER()OVER(PARTITION BY 
	      shop_code,
product_id,
doc_date order by product_id ,
ship_count_mark1,
mark_1,
Базовые_отгрузки,
акционные_отгрузки,
ship_mark2,
mark_2,
Базовые_отгрузки2,
Дополнительные_объемы)
FROM AOtest.dbo.[finaltab])
DELETE FROM CTE WHERE RN > 1


удаляется 6 строк. было 916 стало 910
Почему так, как мне удалить именно те строчки, что нашел "Having count"
13 дек 18, 13:19    [21762867]     Ответить | Цитировать Сообщить модератору
 Re: Неправильно удаляются дубли  [new]
court
Member

Откуда:
Сообщений: 2013
Kontox,

в 1-ом запросе, GROUP BY - по одному списку полей
а во 2-м, PARTITION BY - по другому

С чего тогда ожидать одинаковый результат ?
13 дек 18, 13:23    [21762873]     Ответить | Цитировать Сообщить модератору
 Re: Неправильно удаляются дубли  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Перечисление всех полей в CTE для удаления излишне.
Достаточно одного поля с ROW_NUMBER().

Ну и PARTITION BY правильно написать, как уже говорили
13 дек 18, 13:32    [21762885]     Ответить | Цитировать Сообщить модератору
 Re: Неправильно удаляются дубли  [new]
Kontox
Member

Откуда:
Сообщений: 146
А как правильно переписать?
13 дек 18, 13:40    [21762902]     Ответить | Цитировать Сообщить модератору
 Re: Неправильно удаляются дубли  [new]
Kontox
Member

Откуда:
Сообщений: 146
А все, сообразил. Пасип, за наводку.
13 дек 18, 13:48    [21762919]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить