2
A
回答
9
在我的SQL
select a.Incoming,
coalesce(a.Incoming -
(select b.Incoming from orders b where b.id = a.id + 1), a.Incoming) as differance
from orders a
5
使用LAG
功能的Oracle。
尝试此查询
SELECT DATE_IN,Incoming,
LAG(Incoming, 1, 0) OVER (ORDER BY Incoming) AS inc_previous,
LAG(Incoming, 1, 0) OVER (ORDER BY Incoming) - Incoming AS Diff
FROM orders
+0
排序依据输入不正确。减去_previous_行减去当前行,不要求与下一行的差异。所以我认为,正确的方向,错误的答案? :-) –
2
create table orders (date_in date, incoming_vol number);
insert into orders values (to_date('27.05.2015', 'DD.MM.YYYY'), 83);
insert into orders values (to_date('26.05.2015', 'DD.MM.YYYY'), 107);
insert into orders values (to_date('25.05.2015', 'DD.MM.YYYY'), 20);
insert into orders values (to_date('24.05.2015', 'DD.MM.YYYY'), 7);
insert into orders values (to_date('22.05.2015', 'DD.MM.YYYY'), 71);
的LAG功能用于访问数据从先前行
SELECT DATE_IN,
incoming_vol as incoming,
LAG(incoming_vol, 1, incoming_vol) OVER (ORDER BY date_in) - incoming_vol AS incoming_diff
FROM orders
order by 1 desc
而不分析函数的另一个解决方案:
select o.date_in, o.incoming_vol, p.incoming_vol-o.incoming_vol
from orders p, orders o
where p.date_in = (select nvl(max(oo.date_in), o.date_in)
from orders oo where oo.date_in < o.date_in)
;
相关问题
- 1. 如何从前一行中减去?
- 2. 当前时间减去mod_date_time
- 3. 回声当前URL减去当前页
- 4. 减去前一行的数量MySQL
- 5. 减去以前行,然后由新行
- 6. 如何从Hive中的组中的当前行中减去前一行?
- 7. 检索上一行以减去当前行的日期
- 8. 如何从SQL中的前一行添加/减去?
- 9. 减去查询中前一行值的SQL最佳方法?
- 10. 仅为每个值减去前两行
- 11. 减去行
- 12. 减去行
- 13. 减去行
- 14. 减去两行
- 15. 将值减去多行 - SQL
- 16. 如何从teradata中的当前行值中减去所有以前的行值?
- 17. SQL Server - 获取总和减去前一行的总和
- 18. Bash Shell当前日期减去天数
- 19. Vb.net当前日期减去日期
- 20. 日期。减去从列当前日期
- 21. jQuery/JavaScript:减去当前'值'直到'零'
- 22. 当前时间减去提交时间
- 23. 减去当前日期的年份
- 24. 从当前日期减去TIMESTAMP
- 25. 从当前时间戳减去四周
- 26. 如何在postgressql中生成当前_date(减去12个月)和当前_date(减去7天)的星期
- 27. 如何在PL/SQL中减去当前日期的日期
- 28. SQL 2008减去
- 29. 在SQL中从另一行中减去一行数据
- 30. 我如何减去R中的前一天值行?
什么定义了上一行?约会?以及来自给定样本数据的预期结果是什么?这是MySQL还是Oracle? –
尝试使用铅Oracle函数:) –
为什么MYSQL标签? –