【发布时间】:2019-06-16 15:42:49
【问题描述】:
我正在使用 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 匹配第一个条件,并且只为 [0-200] 的 X 提供一个值,我需要 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
如何在 case 语句中获取 2 条匹配记录?
【问题讨论】:
标签: sql oracle aggregate-functions unpivot