Я пытаюсь выполнить этот запрос
select
rank() over (partition by substr(upper(sku),1,19) order by round(avg(inpf.amount),2) desc) as ranking from erp.input_factor inpf
Я получаю сообщение об ошибке: Столбец выражения выражения PARTITION BY SKU, который не группируется и не агрегируется в [5:40]
изКонечно, я не хочу добавлять sku в группу, поэтому в предложении over.что здесь не так?
актуальный запрос:
select sq.fab_id , sq.sku as sku
from
(
select upper(inpf.fab_id) as fab_id, substr(upper(sku),1,19) as sku ,round(avg(inpf.amount),2) as amount,
rank() over (partition by substr(upper(sku),1,19) order by round(avg(inpf.amount),2) desc) as ranking ,
fi.main_construction as construct from erp.input_factor inpf
left join
erp.fabric_information fi
on upper(inpf.fab_id) = upper(fi.fab_id)
where length(inpf.fab_id) > 3
group by inpf.fab_id , substr(upper(sku),1,19) , fi.main_construction
) sq
where (sq.construct = 1)