gpt4 book ai didi

postgresql - 如何从该数据集中创建组?

转载 作者:行者123 更新时间:2023-11-29 13:22:41 26 4
gpt4 key购买 nike

我有一个表格如下:

   id    | similar_id|
--------+-----------+
1 | 2 |
1 | 3 |
2 | 1 |
2 | 3 |
3 | 1 |
3 | 2 |
4 | 5 |
5 | 4 |

如何编写优化的 sql 查询以便找到相似的组?
即 Group1 -> {1,2,3},Group2 -> {4,5}


附言,我知道数据本来可以组织得更好。

最佳答案

select distinct (
select array_agg(a order by a)
from unnest(a) a(a)
) as "group"
from (
select id || array_agg(similar_id) a
from t
group by id
) s
order by 1
;
group
---------
{1,2,3}
{4,5}

根据这些数据:

create table t (id int, similar_id int);
insert into t (id, similar_id) values
(1,2),
(1,3),
(2,1),
(2,3),
(3,1),
(3,2),
(4,5),
(5,4);

关于postgresql - 如何从该数据集中创建组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39010991/

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