Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 列的值取决于所有以前的值_Sql_Oracle_Window Functions_Cumulative Sum - Fatal编程技术网

Sql 列的值取决于所有以前的值

Sql 列的值取决于所有以前的值,sql,oracle,window-functions,cumulative-sum,Sql,Oracle,Window Functions,Cumulative Sum,在查询表时,我正在努力计算列(c3)。事实上,当前行的c3值取决于(c3)的所有先前值 例如,原始3的c3值将取决于raw2的c3,后者取决于raw1的c3,依此类推 | c1 | c2 | c3 | |----|-------|----------| | 1 | 1 | |<-- row1 | 2 | 6 | |<-- row2 | 3 | 2 | |<-- row3 |

在查询表时,我正在努力计算列(c3)。事实上,当前行的c3值取决于(c3)的所有先前值

例如,原始3的c3值将取决于raw2的c3,后者取决于raw1的c3,依此类推

| c1 |   c2  |    c3    | 
|----|-------|----------|
| 1  |   1   |          |<-- row1 
| 2  |   6   |          |<-- row2
| 3  |   2   |          |<-- row3
| 4  |  10   |          |<-- row4
| c1 | c2 | c3 |
|----|-------|----------|

|1 | 1 | |这是一个窗口总和。假设列
c1
定义了行的顺序,则为:

select
    c1,
    c2,
    sum(c1 + c2) over(order by c1) c3
from mytable

这是一个窗口总数。假设列
c1
定义了行的顺序,则为:

select
    c1,
    c2,
    sum(c1 + c2) over(order by c1) c3
from mytable

如果我想用另一个函数来代替sum,逻辑是一样的吗?让我们假设cocat字符串,如果我有字符串等等…@Blood HaZaRd:是的,逻辑与其他窗口函数相同。对于字符串,您可以在(…)上使用
listag(…)
@GMB。我认为
listagg()
不适用于
orderby
。如果我想用另一个函数替换sum,它的逻辑会是相同的吗?让我们假设cocat字符串,如果我有字符串等等…@Blood HaZaRd:是的,逻辑与其他窗口函数相同。对于字符串,您可以在(…)上使用
listag(…)
@GMB。我认为
listagg()
不适用于
orderby