Вывести все записи, кроме самой первой с наименьшей датой
В таблице появилось очень много дублей, мне необходимо вывести все дублирующиеся записи, кроме самой первой (так скажем оригинальной), что бы потом их вычистить. Самая первая является с наименьшей датой. Написала следующий скрипт:
select date_cr, guid, client_ds from ds_services where rate = '2034723753' and date_cr != (select MIN(date_cr) from s_services) order by date_cr
Но по итогу выводит так же все записи с rate = '2034723753', подскажите какое лучше условие тогда прописать?
Ответы (2 шт):
Автор решения: azlov
→ Ссылка
OFFSET 2 - выборка начнется со второй записи
order by date_cr
offset 2;
Автор решения: Akina
→ Ссылка
мне необходимо вывести все дублирующиеся записи, кроме самой первой (так скажем оригинальной), что бы потом их вычистить.
Смысл? чего на них любоваться? надо сразу удалять...
DELETE t1.*
FROM ds_services t1
JOIN ds_services t2 USING (rate)
WHERE t1.date_cr > t2.date_cr
-- AND t1.rate = 2034723753
-- либо
-- AND t1.rate IN (список значений)
Но если прёт вывести - заменить DELETE t1.* на SELECT DISTINCT t1.* .