我有一组像这样的数据
name price number
A 4400 1
B 3000 1
A 3000 2
我想计算具有相同名称的两个数据的百分比变化。例如,A =(4400 - 3000)/ 3000的价格变化百分比,并且由于只有一个B,其价格变化百分比将为零。 以下是我的结果。
名称价格变动百分比
0.466
B 0
有人可以告诉我如何编写sql查询来执行此操作吗?
答案 0 :(得分:0)
如果您想要每个name
的第一个和最后一个结果之间的百分比:
select name,
((max(case when number = 1 then price end) -
max(case when number = maxn then price)
) /
max(case when number = maxn then price end)
)
from (select t.*,
max(number) over (partition by name) as maxn
from t
) t
group by name;
答案 1 :(得分:0)
尝试
select name, (max(price) - min(price)) / max(price) from t group by name;