Вывести все записи, кроме самой первой с наименьшей датой

В таблице появилось очень много дублей, мне необходимо вывести все дублирующиеся записи, кроме самой первой (так скажем оригинальной), что бы потом их вычистить. Самая первая является с наименьшей датой. Написала следующий скрипт:

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.* .

→ Ссылка