Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/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
Postgresql Postgres:如何增加索引(指针)以访问其他行_Postgresql - Fatal编程技术网

Postgresql Postgres:如何增加索引(指针)以访问其他行

Postgresql Postgres:如何增加索引(指针)以访问其他行,postgresql,Postgresql,我一直在试图理解如何增加对某个值的引用 在C语言中,我只需增加指针以检索下一个数组位置中的值 这一机制在研究生中是如何运作的?可能吗 例如,我创建了一个包含以下数据的表: create table mathtest ( x int, y int, val int) insert into mathtest (x,y,val) values (1,1,10),(2,2,20),(3,3,30),(4,4,40),(5,5,50),(6,6,60),(7,7,70),(8,8,80),(9,9,9

我一直在试图理解如何增加对某个值的引用

在C语言中,我只需增加指针以检索下一个数组位置中的值

这一机制在研究生中是如何运作的?可能吗

例如,我创建了一个包含以下数据的表:

create table mathtest (
x int, y int, val int)

insert into mathtest (x,y,val)
values (1,1,10),(2,2,20),(3,3,30),(4,4,40),(5,5,50),(6,6,60),(7,7,70),(8,8,80),(9,9,90),(10,10,100),(11,11,110)
我要做的是将当前行的val值相加,然后当行中的x值等于当前x值加2,然后再加4时,再加上val值。我意识到,我不能假设检索到的下一行将按设定的顺序进行,因此我不能使用“lead”

如果是C,我只需增加指针

对于某些除数,当x和y的模=0时,需要输出数据。(这个钻头有效)

这将产生以下结果:

       base     plus1x      plus2x     y    val
1       6         8           10       6     60
我想要的输出是:

60+80+100=240

我不知道该怎么做。我的思维似乎陷入了程序化的C模式

无论我键入什么并尝试都是错误的

有人能帮我克服这个障碍吗?

欢迎来到世界

您需要一个显式的排序,否则,谈论“前一行”毫无意义

作为一个简单的示例,要获得与前一个值的差异,可以查询

SELECT val -
       lag(val) OVER (ORDER BY x)
FROM mathtest;

我不确定我是否理解您想要的确切输出。请您为当前的样品添加一个类似的样品。您可以使用
lead()
函数访问以下行的值。“这就是你要找的吗?”一匹没有名字的马,我很抱歉说得不准确。我想将输出放入另一个名为output的表中。输出将包含x int、y int、val int。当我在mathtest表中找到x和y值,其中x和y满足模标准时,我希望将当前的x和y存储在输出x和y中。通过从mathtable中获取当前val,然后将mathtable中的val添加到前面2行(使用val值,其中行x=当前x+2)和前面4行(y值保持不变),计算输出表val条目。我在处理笛卡尔科罗迪亚人。
SELECT val -
       lag(val) OVER (ORDER BY x)
FROM mathtest;