Я использую базу данных Oracle и хочу рассчитать среднюю цену продукта для разных регионов.
Пример:
prod,amt,price
X,100,1
X,180,2
X,250,3
Y,90,2
Y,170,3
Y,280,3
Здесь продукт X продается за 100 в одном регионе и 180 в другом регионе ... и т. Д.
Теперь для некоторых аналитиков они сгруппированы в разные диапазоны, которые перекрываются, и мне нужно вычислить среднее значение цены на основе диапазона
Требуемый вывод
prod,rang(Amt),mean(price),
X,[0-200],1.5,
X,[150-300],2.5,
Y,[0-200],2.5,
Y,[150-300],3,
Обратите внимание, что есть много диапазонов, и я дал только 2 для ясности.
Я попробовал, как показано ниже, но case
соответствует первому условию и просто дает одно значение для X для [0-200], где мне нужно 2 записи
select prod, amt, price,
case
when amt between 0 and 200 then amt
when amt between 150 and 300 then amt
end as rng
from tablea
Как получить 2 записи на совпадение в выписке по делу?