gpt4 book ai didi

sql - 回溯-PostgreSQL

转载 作者:行者123 更新时间:2023-11-29 12:17:06 27 4
gpt4 key购买 nike

我有一个看起来像这样的表:

 here  | there | 
-------+-------+
{1,1} | {1,1} |
{1,1} | {2,1} |
{1,1} | {1,2} |
{1,2} | {1,3} |
{2,1} | {2,2} |
{2,1} | {3,1} |
{3,1} | {3,2} |
{2,2} | {2,3} |
{3,2} | {3,3} |

我想做一个从 {3,3}{1,1} 的回溯。我想将 Backtrace 中的所有点连接到一个数组中。

结果是这样的:

{1,1},{2,1}{3,1},{3,2},{3,3}

我该如何管理?

最佳答案

这是一个相当简单的递归查询。使用附加列 depth 获取最终聚合中点的预期顺序。

with recursive backtrace(here, there, depth) as (
select here, there, 0
from my_table
where there = '{3,3}'
union all
select t.here, t.there, b.depth+ 1
from my_table t
join backtrace b on b.here = t.there and b.here <> b.there
)

select string_agg(there::text, ',' order by depth desc) as backtrace
from backtrace

backtrace
-------------------------------
{1,1},{2,1},{3,1},{3,2},{3,3}
(1 row)

关于sql - 回溯-PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47438738/

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