Sql 同一表和同一列中的行操作
我有一个小问题要讨论,希望你能轻松些。 假设表A有两列,如下所示:Sql 同一表和同一列中的行操作,sql,Sql,我有一个小问题要讨论,希望你能轻松些。 假设表A有两列,如下所示: item price milk 25 milk 50 milk 100 Butter 25 Butter 100 Butter 200 现在,我想将从表a派生的表B显示为 item price growth rate milk 0 milk 10
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
第1行的增长率公式为
((row[1]-row[0])/row[0])*100
eg for 1st row ((50-25)/25)*100
你能为它推荐一个SQl查询吗?你的主要技巧是编写SQl,在一行中获得两个连续的行 根据服务器的不同,有几种方法可以做到这一点 例如,您可以将一个查询中的每一行连接到子查询,子查询将得到第一行,该行的值低于当前行中的值 要获得所需的结果,还需要使用一个将空值转换为0的函数
注意:结果第4行中的示例列出了增长率100;这与第一行中的示例不一致。sql server/Mysql/Oracle?另外,是否还有一列指示顺序?或者从哪个顺序可以推断出来?听起来好像有人在尝试简单的方法来完成一些家庭作业。谢谢!但我找不到合适的t sql,因为如果我对同一个表使用内部联接,则第一行会对第二部分的行重复;在SQL中连接连续行的方法是删减不需要的结果(例如具有相同值的某个唯一键的行,并且还将结果限制为剩余记录的第一个)。正如我所说的,如果您需要帮助更好地显示表的结构(列出表名、主键和用于建立顺序的列,再加上修复示例,这是不明确的)