大哥,你这个样本给的有问题呀?你的这三个sql的意义也不一样。只不过恰巧得数一样了而已。
1、
SELECT a.id,a.value,SUM(nvl(a."VALUE",0))
FROM mytable A
JOIN mytable b ON b.id<=a.id
GROUP BY a.id,a.value
这个相当于order by value后的value*rownum。
2、
SELECT ID,VALUE,SUM(VALUE) OVER(ORDER BY ID) FROM mytable;
是ORDER BY ID后,当前value之和。
3、SELECT ID,value+LAG(VALUE,1,0) OVER(ORDER BY ID) FROM mytable
是ORDER BY ID后,上一个value+现在的value。你可以试试下面的样本。
INSERT INTO mytable VALUES(1,5);
INSERT INTO mytable VALUES(2,6);
INSERT INTO mytable VALUES(3,10);
1、
SELECT a.id,a.value,SUM(nvl(a."VALUE",0))
FROM mytable A
JOIN mytable b ON b.id<=a.id
GROUP BY a.id,a.value
这个相当于order by value后的value*rownum。
2、
SELECT ID,VALUE,SUM(VALUE) OVER(ORDER BY ID) FROM mytable;
是ORDER BY ID后,当前value之和。
3、SELECT ID,value+LAG(VALUE,1,0) OVER(ORDER BY ID) FROM mytable
是ORDER BY ID后,上一个value+现在的value。你可以试试下面的样本。
INSERT INTO mytable VALUES(1,5);
INSERT INTO mytable VALUES(2,6);
INSERT INTO mytable VALUES(3,10);
解决方案 »
- 监听和实例如何关联?
- 请问一个存储过程
- put_line()和putf()的区别,大家看着俩句话
- 高手帮忙看看这段代码,是oracle8.0的存储过程,编译不过去。
- 用什么函数可以取出一个表的所以索引和索引的表达式??
- Oracle10g 在SQLPlus控制台运行clear screen导致出错,引起SQLPlus控制台崩溃
- 使用SQLPL Develop如何在一个sql窗口里面写两个select语句?
- 200分求 oracl9i 视频
- 我的oracle为什么装不进去啊?
- 请推荐几本好书,关于Oracle的!(谢谢)
- oracle使用游标作为传入参数如何处理
- oracle 怎么能实现 一个字段相同,另一个字段不同,然后让这个相同的字段显示成一行数据
SELECT a.id,a.value,SUM(nvl(b."VALUE",0))
FROM mytable A
JOIN mytable b ON b.id<=a.id
GROUP BY a.id,a.value1,2结果是一样的,应该。
第三个确是我理解错了,巧合。