left jjoin?
а именно если есть дубликаты (они выделены на скрине), мне нужно получить только одну запись, а присоединенную "строку" с самым "старым" (поздним) значением sale_at.
чот не могу понять как это сделать.
те мне нужно получить только последнюю из выделнных записей (дублей), так как там sale_at позже
а где там дубликаты? данные в столбцах sale_type и далее разные
Перенумеровать и выбрать только строчки с 1
на скрине sr_id одинаковый, мне такого не нужно
а что тебе нужно?
получить не 2 эти выделенные строчки, а только последнюю
Либо добавить в select row_number() over (partition by product_sales.srid order by product_sales.sale_at desc) as rn,засунуть всё в подзапрос и выбрать с where rn=1
спасибо, пока ничего не понимаю
Сверху пишем select*from ( Потом в 10й строчке перед from добавляем ,row_number() over (partition by product_sales.srid order by product_sales.sale_at desc) as rn Потом в конце добавляем ) as a where a.rn=1 Но скорее всего надо будет исключить повторы srid
я пока с подзапросом и max(sale_at) колдую
from order_statistics left join (select srid,max(sale_at) as msale_at from product_sales where is_storno=0 group by srid) as m on m.srid=order_statistics.srid left join product_sales .... and product_sales.sale_at=m.msale_at Может что-то ещё надо будет в group by добавить
БД какая?
Обсуждают сегодня