问题标签 [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.
apache-drill - Apache Drill 上的 array_agg 函数
我需要使用下面的array_agg函数。(它是postgresql)
但是,我在 Apache Drill 文档中找不到 array_agg 函数。
我需要制作array_agg的自定义功能吗?Apache Drill 是否有针对 array_agg 函数的计划?
sql - Exasol 中的数组聚合
用例相当简单。在 postgres 中,我可以将 a 中的值聚合GROUP BY
到一个数组中:
在 Exasol 中,从聚合函数的文档页面中,我只能看到将上面的GROUP_CONCAT
所有值合并items
为逗号分隔的字符串。
是否可以在适当的数组而不是字符串中获取这些值?
php - 为一维和二维数组构建 SQL 输出
我正在开发一个需要一系列 SQL 相关输出的 PHP 程序,我希望 SQL 可以完成我的大部分工作。
为了这个问题,我有一个带有这种类型的数据和标题的表格
注意:ID 用于特定条目,并且是自动递增的
注意:标题部分用于隔离特定项目的数据
注意:对于特定项目,人员可能会重复
注意:日期不会重复,但不一定要组织
注意:对于这个问题的目的假设数据没有很好地组织并且在 SQL 语句中发生排序
当我使用 phpmyadmin sql 数据库时
这是我想要的正确输出。
问题来了,我想使用接近 array_agg 的东西,但是对制作数组数组(二维数组)感到困惑,但我想做的是在新表上使用 SQL 查询,这样我就可以生成以下数组.
问题:SQL 能否提供一个输出,允许我根据上述数据集拥有以下数组?
这听起来像是大量的工作,但如果 SQL 可以准确地给我这种输出,它将使我的一些编码变得更加容易。此时,我必须将 SQL 中的数据行输出到我的 PHP 中,并在 PHP 代码本身中构建数组,而不是让 SQL 输出这样的数组,对于较大的数据库,构建数组本身需要大量时间更不用说要求独特的数据了。
java - postgres中的array_agg函数,在java中使用时不返回任何记录/数据?
我有这样的查询
当我在pgAdmin中执行此查询时,它运行良好并返回像此 图像一样的记录 但是当从 java 代码调用时它不起作用
sql - 如何将array_agg之后的整数数组转换为IN子句的值
可以请帮助我,我正在尝试解决这个问题很长一段时间......我有表格产品和相关产品(顶级产品由其他基础产品组成)。目标:我想获得所有基础产品。所以,表看起来像:
我通过查询得到了这个:
我想related_product_ids
输入产品表以获取所有相关产品。所以,实际上我通过运行从所有必要的值中创建了数组
我尝试了以下操作,但没有成功:
或以下:
和许多其他尝试
所以最后我需要的是
(来自 的值related_product_ids
)
如何将整数数组(related_product_ids)转换为值....或者您可以建议不同的更好方法?
postgresql - Postgres 复杂查询以获取具有与具有特定值的另一个表连接的对应列的列值
我有两个 Postgres 表:
来自 affiliations 的 user_id 可以是关系中的两个列值中的任何一个,并且 current in affiliations 是一个布尔值。
在关系中,user_id 不是唯一的,可以有多个对应的 target_user_id 值。
我想从附属关系中获取一个 user_id 列表,这些列表也在关系中的 user_id 列中,并且它们所有相应的 target_user_id 值都将它们在附属关系中的“当前”值设置为 false
例子:
所以我希望查询只返回 1,因为用户 2 没有其所有对应的 target_user_id 其当前为 false
提前致谢!
postgresql - Postgres如何按1列分组并将其他列聚合为数组中的元素
数据库表如下所示:
我想按状态分组并city
变成一个数组并contact
用分号拆分以变成一个数组:
这将每个状态聚合contacts
为 1 行,并且应该处理空值,但它不会被拆分为分号:
如何state
在聚合每个状态的所有行city
和行时修改我的查询以分组?contact
sql - 在 Big Query 中制作连接表数组的最佳方法是什么?
我正在尝试使用 SQL 在 Big Query 中进行一些数据转换。
假设我有三个表:
客户 - 有关客户的数据,例如年龄等 订阅 - 有关用户订阅的数据 参与度 - 有关客户如何与数字产品交互的数据。
我想使用嵌套字段将其收集在一个表中。
我可以加入所有这些表,但我想将它们聚合到数组中。
因此,我得到的不是三个表:
当然,我在 SELECT 中使用了 array_agg。当只添加一个表时,效果很好。但是,当添加另一个时,我会得到重复的行,这是我不想要的。所以,我想我不应该在 SELECT 中使用 array_agg,而应该在其他地方使用。
但是解决这个问题的最佳方法是什么?
sql - BigQuery:使用 GroupBy 选择前 3 天的销售并保存在单独的列中,留下其他列
输入: 有表'A'
场景: 必须取按商店、类别分组的销售额平均值并保存在单独的列中,并选择前 3 个销售日并保存在单独的列中。结果,一个商店一行,示例输出中的类别如下所示。
预期输出:
尝试查询:
提前致谢!
arrays - 如何在 PostgreSQL 选择语句中尊重数组的顺序
这是我的(极其简化的)产品表和一些测试数据。
在现实生活中,列出产品列是一项教学任务,充满了连接、case-when-end 子句等。另一方面,有大量的查询需要完成,如按品牌的产品、特色产品、产品按标题、按标签、按范围或价格等。
我不想在每次执行查询时重复和维护复杂的产品列列表,所以我目前的方法是在两个任务中打破查询过程:
- 将查询封装在 type 的函数中
select_products_by_xxx()
,该函数返回product_id
正确选择和排序的数组。 - 将所有产品列的复杂性封装在一个
list_products()
以 aproduct_id array
作为参数的独特函数中。 - 执行
select * from list_products(select_products_by_xxx())
以获得每个xxx
函数所需的结果。
例如,要product_id
以相反的顺序选择(如果这对应用程序来说是任何有意义的选择),这样的函数就可以做到这一点。
它可以被测试为
为了封装查询的“列表”部分,我使用了这个函数(再次,为了示例的好处,非常简化并且没有任何连接或大小写)。
它有效,但不尊重传递数组中产品的顺序。
所以,问题是我传递了一个自定义的有序数组,product_id
但list_products()
函数不尊重数组内的顺序。
显然,我可以在 中包含一个order by
子句list_products()
,但请记住,排序必须由select_products_by_xxx()
函数确定以保持list_products()
唯一性。
任何想法?
编辑
@adamkg 解决方案简单且有效:添加一个通用的 order by 子句,如下所示:
但是,这意味着要订购两次产品:首先是 inside select_products_by_xxx()
,然后是 inside list_products()
。
探索explain
呈现以下结果:
现在我想知道是否还有其他更好的方法来降低成本,保持功能之间的可分离性。
我看到了两个有希望的策略:
- 至于
explain
子句和问题本身,似乎product
正在对表进行完整扫描list_products()
。由于可能有数千种产品,更好的方法是扫描传递的数组。 - 可以将
xxx
函数重构为 returnsetof int
而不是int[]
. 但是,集合不能作为函数参数传递。