Мне нужно отсортировать несколько записей последовательно с помощью числового значения. Мне нужно использовать функции lead()
и lag()
, но у меня нет идеи, как это сделать.PostgreSQL сортирует последовательные записи кластеров
**** Таблица ****
lote cod_guia box des_prod
1,50731E+14 42012 50434 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,51E+14 42012 50435 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,51E+14 42012 50436 MERLUZA DEL SUR ENFRIADO REFRIGERADO
мой SQL
Select
packing_acum.lote as lote_completo,
m_pesaje.cod_guia,
--lag(packing_acum.corr,1) over wt as anterior,
min(packing_acum.corr),
max(packing_acum.corr),
--lead(packing_acum.corr,1) over wt as proximo,
producto.des_prod ,
case when packing.tipo = 1 THEN 'ENFRIADO REFRIGERADO' ELSE 'CONGELADO' end as estado_fresco_o_congelado
From m_pesaje
inner join (producto
inner join (packing
inner join packing_acum
on packing.cod_packing = packing_acum.cod_packing)
on packing_acum.cod_prod = producto.cod_prod)
on packing_acum.cod_pesaje = m_pesaje.cod_pesaje
where
packing_acum.estado = 5668 and packing_acum.cod_prod <> 0
group by lote_completo,cod_guia,des_prod,estado_fresco_o_congelado
order by
min(packing_acum.corr),max(packing_acum.corr)
результат:
lote cod_guia box_ini box_end des_prod estado_fresco_o_congelado
1,50731E+14 42012 50434 50507 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,50731E+14 41934 50498 50502 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,50731E+14 42010 50503 50505 MERLUZA DEL SUR ENFRIADO REFRIGERADO
мне нужно:
lote cod_guia box_ini box_end des_prod estado_fresco_o_congelado
1,50731E+14 42012 50434 50497 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,50731E+14 41934 50498 50502 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,50731E+14 42010 50503 50505 MERLUZA DEL SUR ENFRIADO REFRIGERADO
1,50731E+14 42012 50505 50507 MERLUZA DEL SUR ENFRIADO REFRIGERADO
Просьба дать больше контекста, его непонятно, что должен делать ваш SQL, и почему у результата, который вам нужен, больше записей, чем результат, который вы получаете – frankpinto
спасибо ... посмотрите таблицу результатов и посмотрите результат таблицы, чтобы i хочу ... Мне нужно отделить число для последовательных значений ... min_value (box-ini) -> max_value (box-end) – user5310316
Я до сих пор не совсем понимаю. Вам также нужно будет указать * input *, т. Е. Таблицу (таблицы) и данные. –