问题标签 [array-agg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

sql - 如何使用postgres将array_agg中的条件结果放入一行?

我需要处理这个表,根据 postgres 中 exception_type 中的值将数据分成列。

我的代码:

此查询的输出是一个包含合并数据的表,但始终有一列具有值,另一列具有空值。我需要每个 service_id 一次,包括可用和不可用日期。

这就是我得到的:

这就是我需要的:

0 投票
1 回答
21 浏览

postgresql - 为什么它与 ~~ any() 不同?

让我先给你看我的桌子:

我想要做的是删除来源为“已添加”且品牌或名称类似于来源为“Orig”的品牌的数据。例如在这里我们将删除下一行:

那么当我们手动创建这个品牌比较时会是什么:

效果很好,我们用这个“欧尚”删除所有行。但是当我试图聚合这些品牌的数组时:

不会删除任何数据。

我什至检查了它们是否相似,是的,这两个数组会相似......

有人可以帮忙吗(或者建议如何删除这些事件)?

0 投票
0 回答
35 浏览

orm - sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)不能适应类型'ImmutableColumnCollection'

我正在尝试array_agg对子查询进行嵌套操作,我得到了sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'ImmutableColumnCollection'. 我目前有一个工作(更简单)的查询和后续itertools.groupby操作,但我试图将所有内容都作为查询。

这是简化的代码:

所以它似乎在抱怨,因为array_agg需要一个明确的type并且它无法处理ImmutableColumnCollection子查询的“返回”。我不完全了解如何c使用,所以我怀疑我sq.c的问题。

0 投票
1 回答
26 浏览

sql - 如何根据来自同一个表的唯一值加入两次在 postgres 中创建数组?

我有一个查询,我加入了同一张表的两次,即:

我想查询一个名为tag的列,其中我将拥有两个表(tag1tag2)中的唯一值。

示例:
现在我可以从每一列中选择唯一值,jsonb_agg(distinct tag_name)并且在我的查询中我有两列:

而且我希望有一列具有独特的值tag1tag2例如:

0 投票
1 回答
116 浏览

sql - 如何在 bigquery 中删除 array_agg

我创建了一个带有重复记录的新表。我正在尝试找到对记录进行重复数据删除的最有效方法,因为这将在具有数百万条记录的表上运行。如果您使用多个 CTE 嵌套,那么您的数据结构是什么,处理是在内存中完成还是在有大量数据时写入临时表是否重要。

我可以按如下方式删除重复项。

查询 1

查询 2

我如何将它从表中取出,而不是使用 CTE。这不会重复数据删除。

我不能这样做。

0 投票
1 回答
36 浏览

google-bigquery - BigQuery 查询优化 - 将字段取消嵌套到 REPEATED STRUCT

我目前有以下完美工作的查询,但我想知道它是否可以优化(也许首先避免使用 UNNEST,然后再使用 GROUP BY 并一步进行转换)。

输入 :

行键 field_raw
1 key_A:value_A,key_B:value_B,key_C:value_C

预期输出:

行键 field_items.key field_items.value
1 键_A 值_A
键_B 价值_B
键_C 价值_C

感谢帮助 :)

0 投票
1 回答
37 浏览

group-by - BigQuery 中的打开、高、低、关闭聚合

根据 BigQuery 用于获取最新记录的最佳实践,以下ARRAY_AGG()我获取字段一天的第一个、最后一个最小值和最大值的方法。数据大约每小时报告一次。

输出:

d 最大值 最小值 最后一个值 第一个值
1 2021-01-01 15 2 2 10
2 2021-01-02 600 120 150 600
3 2021-01-03 0 0 0 0

由于 Code Review 上只有六个 BigQuery 问题,我想我会在 Stack Overflow 上提问。这是最快的方法吗?我的查询中有什么无关的吗?(我不太确定 [OFFSET(0)] 正在做什么。)

我已经在 Stack Overflow for Oracle、T-SQL 和 Postgres 上看到过这个问题,但我没有看到任何特定于 BigQuery 的内容。谢谢!