Sql查询百分比改变两个数据

时间:2016-04-09 14:18:38

标签: sql sql-server

我有一组像这样的数据

name   price   number
 A      4400      1
 B      3000      1
 A      3000      2

我想计算具有相同名称的两个数据的百分比变化。例如,A =(4400 - 3000)/ 3000的价格变化百分比,并且由于只有一个B,其价格变化百分比将为零。 以下是我的结果。

名称价格变动百分比

0.466

B 0

有人可以告诉我如何编写sql查询来执行此操作吗?

2 个答案:

答案 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;