当前位置: 首页 > 面试题库 >

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

昝枫
2023-03-14
问题内容

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

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]

最好的方法是什么?我猜可能是将现有查询用作子查询,并对它进行求和/计数,但这似乎效率很低。任何反馈都将真正有帮助!


问题答案:

UseHaving子句过滤具有以下内容的组fkey

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


 类似资料:
  • 代码: 为什么第二个打印5而不是20?

  • 问题内容: 我基本上想在C语言中使用python等效: 但在python中,我声明了一个数组,如: 问题是我想给随机插槽分配值,例如: 但由于数组为空,所以我无法使用python做到这一点。 问题答案: 如果按“数组”实际上是指Python列表,则可以使用 要么

  • 问题内容: 好的,所以我有一个二维数组z [50][50],因此z的大小是50*50,但是如果我说z.length,我只能得到50。如何获得2D数组的实际大小? 问题答案: 在Java中,二维数组实际上是长度可能不同的数组的数组(不能保证在二维数组中第二维数组的长度都相同) 您可以将任何第二维数组的长度作为where 。 如果将二维数组视为矩阵,则可以简单地获取和,但是请注意,您可能会假设第二维的

  • 我有一个包含玩家数据的数组。这个数组根据玩家的数量而变化。数组看起来像这样: 我只想从每个玩家的数组中获取玩家名。我该怎么做?输出应该是如下所示的字符串:我在Internet或YouTube上没有找到任何内容。答案当然简单明了,但我还没有找到。 Im使用PHP 8.0.13。

  • 我不知道这是怎么运作的。所以任何人都可以帮我。

  • 我正在编写一个简单的函数,它返回数组中最大的整数。我遇到的问题是在数组中找到元素的数量。 下面是函数头: 我如何获得数组'list'中的整数数。 我试过以下几种方法: 任何帮助都将不胜感激!