Postgresql Postgres:如何增加索引(指针)以访问其他行
我一直在试图理解如何增加对某个值的引用 在C语言中,我只需增加指针以检索下一个数组位置中的值 这一机制在研究生中是如何运作的?可能吗 例如,我创建了一个包含以下数据的表: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
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;