gpt4 book ai didi

sql - 如何在数组大小大于1的postgres中获取数组

转载 作者:行者123 更新时间:2023-11-29 11:39:08 37 4
gpt4 key购买 nike

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

val | fkey | num
------------------
1 | 1 | 1
1 | 2 | 1
1 | 3 | 1
2 | 3 | 1

我想做的是返回一组行,其中的值按“val”分组,带有一个 fkeys 数组,但仅在 fkeys 数组大于 1 的情况下。因此,在上面的示例中,返回看起来像:

1 | [1,2,3]

我有以下查询聚合数组:

SELECT val, array_agg(fkey)
FROM mytable
GROUP BY val;

但这会返回如下内容:

1 | [1,2,3]
2 | [3]

这样做的最佳方法是什么?我想一种可能性是将我现有的查询用作子查询,并对其进行求和/计数,但这似乎效率低下。任何反馈都会很有帮助!

最佳答案

使用Having子句来过滤拥有超过fkey

的组
SELECT val, array_agg(fkey)
FROM mytable
GROUP BY val
Having Count(fkey) > 1

关于sql - 如何在数组大小大于1的postgres中获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29381237/

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