同一个表和相同列中的行操作

时间:2010-05-07 12:14:16

标签: sql

我有一点问题需要讨论,希望对你来说很容易。 假设我的表A有2列

item          price
milk           25
milk           50
milk           100
Butter         25
Butter         100
Butter         200

现在我想显示一个从表A派生的表B

item          price growth rate
milk           0
milk           100
milk           100
Butter        100
Butter         200
Butter         100

row1的增长率公式为

((row[1]-row[0])/row[0])*100
eg for 1st row ((50-25)/25)*100

你能建议一个SQl查询吗

1 个答案:

答案 0 :(得分:0)

您的主要技巧是编写SQL,它将在一行中获得两个连续的行。

取决于服务器,有几种方法可以做到这一点

例如,您可以将每行从一个查询连接到子查询,这将获得第一行的值低于当前行中的值。

要获得所需的结果,您还需要使用将空值转换为0的函数。

注意:结果第4行中的示例列出了增长率100;这与第一行中的示例不一致。