gpt4 book ai didi

sql - 对行进行递归操作的 Postgres 查询

转载 作者:行者123 更新时间:2023-11-29 14:09:48 26 4
gpt4 key购买 nike

create table foo (a int, b float);

insert into foo values (1, 2), (2,3),(3,2.5),(4,1.5);

a | b
---+-----
1 | 2
2 | 3
3 | 2.5
4 | 1.5

我想计算每个 b 对于任何 a

的差异
select RECURSIVE diff (?,?) on b where a=1

输出:

 a |  diff  
---+-----
1 | 0
2 | 1
3 | .5
4 | -.5

是否可以对所有表格行递归应用一个函数?

最佳答案

select b - b0
from
foo
cross join
(select b as b0 from foo where a = 1) s
;
?column?
----------
0
1
0.5
-0.5

由于评论中有成千上万的请求,这是优雅的版本:

select f1.b - f2.b
from
foo f1
cross join
foo f2
where f2.a = 1

关于sql - 对行进行递归操作的 Postgres 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43395450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com