问题标签 [string-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 回答
26 浏览

sql - 如何显示未包含在另一个表中的所有产品。由 STRING_AGG

我目前正在参与一个关于产品和变体的项目。

产品表

变体表

变量值表

产品变量表

产品明细表

关系

当我调用这个查询时..

我得到以下结果..

到目前为止一切都很好,它显示了所有产品的价格,但是当我插入一个没有变体的新产品(简单产品)时,它没有出现。就我而言,Perfume Y 没有任何变体。

我尝试使用正确和完全连接但徒劳无功。我如何显示所有产品,包括那些没有变体的产品。

0 投票
1 回答
39 浏览

postgresql - postgres给了我一组数字,例如“1,2,3,6,7,8,11,12,15,18,19,20” 获得每组连续数字的最大值

连续数字按下面的查询分组,但我不知道如何获得每组连续数字的最大值

0 投票
0 回答
90 浏览

sql - SQL:在多级 JOIN 中聚合来自不同行的字符串值

我在 SQL Server 中有一个多级表层次结构,当加入它们时,我想对其中一个表的行中的字符串进行聚合。在下面屏幕截图中的(简化)示例中,我有 Level1->Level2->Level3 以及一个表 PerformingUser “挂在”Level1 下。我已经对所有这四个表进行了 JOIN,得到了 8 行。到目前为止一切都很好。

现在,我想要的是这 8 行中的每一行都有一个新列(“AllUsersForLevel1”),其中包含为其 Level1的所有 PerformingUsers 的聚合。(目的是 PerformingUser 也可以看到其他 PerformingUser 具有相同的 Level1。)

因此,对于前 2 行,我想要一个带有“aretha,mary”的新列。在其他 6 行中,该列应该有“约翰,吉姆”。

我已经尝试过 STRING_AGG(如图中的注释所示),但它需要一个分组(我不想要;我想要所有 8 行)。我还尝试在 OVER (PARTITION BY Level1ID) 上执行 STRING_AGG,但得到“函数 'STRING_AGG' 不是有效的窗口函数,不能与 OVER 子句一起使用。”

有人对如何做到这一点有建议吗?

SSMS 截图

0 投票
3 回答
1519 浏览

postgresql - 较新的 postgres 版本中的 string_agg 函数

我目前正在研究几年前在 8.4 版本下开发的 postgres 代码,并迁移到 9.4 postgres 版本,我遇到了这行代码:

在这种情况下:

在迁移到 Postgres 9.4 的过程中,我得到了这个:

错误:函数 string_agg(text) 不存在 SQL 状态:42883 提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。

在较新版本中处理 string_agg 的正确方法是什么?我知道我需要显式转换或添加分隔符,但听起来当前代码今天没有添加任何分隔符,是吗?

今天,我们在 attr 上得到的结果是这些,例如:

0 投票
3 回答
153 浏览

sql - SQL Server 将三个不同的列连接成逗号分隔且没有重复值

下表是我在 SQL Server 中的问题的简化:

我想得到一个由逗号连接的列而没有重复值的组。我尝试使用 STRING_AGG() 但它返回:

这是我所做的查询:

我想要下一个结果:

谢谢!

0 投票
1 回答
232 浏览

sql-server - SQL中基于Common ID的列值组合

谢谢您的帮助!我正在使用 MS SQL Server 17 并尝试按 ID 进行分组,并根据共享 ID 在第二列中找到常见的配对。大多数其他问题涉及找到多个列之间的任何组合。

以下是一些示例数据:

每当 aPersonID有不止一行时,我希望看到Place以下格式的常见配对(对于桑基图)。

配对可以用于同一个地方,例如两次,但我只需要从到格式中的两个配对PersonID == 1'home'

到目前为止,我已经尝试了 STRING_AGG 函数,但我很难将其限制为双向配对。非常感谢您的帮助,如果这是一个之前已经解决的简单答案,我深表歉意。

试图:

0 投票
1 回答
41 浏览

postgresql - PostgreSQL 和 STRING_AGG

我有两张桌子。

和数据:

对于列搜索,我使用选择查询:

问题是:如何进行查询以查找并显示属于该文档的所有文档和所有doc_spec_sets.spec?我需要这样的结果:

这是一个工作示例: https ://rextester.com/live/YOLY27213

0 投票
1 回答
1775 浏览

sql - 反转为 STRING_AGG

这是我们正在进一步处理的样本数据。

我的问题是,STRING_AGGSQL Server 的功能有什么完全相反的吗?

就像我正在使用STRING_AGG以下代码合并

我需要扭转这个过程,但我必须使用 CURSOR,所以我正在寻找替代解决方案。

下面是光标代码,以便更好地理解目的。

0 投票
1 回答
46 浏览

sql - SQL - Postgres 字符串 agg 给出重复项

我试图从系统表中收集外键映射。我在下面的查询中使用了这个。

查询1:

但这不会提供指向 Fk 的主表列。所以我在Stackoverflow上找到了这个查询。

查询 2

现在这个查询给出了单独的列。假设有一个像 (logid, item) 这样的 FK,那么我会得到两行。我想在我的第一个查询中使用 string_agg,我得到了结果,但它最终重复了。喜欢(logid,项目,logid,项目)

重复查询:

有人可以帮我解决这个查询吗?

示例 FK:

预期的查询输出:

在此处输入图像描述

0 投票
2 回答
411 浏览

sql - 使用 STRING_AGG 函数时子查询返回多行

尝试在 PostgreSQL 11 中执行 SELECT 查询时出现错误

并且 authors_string 应该作为字符串值获取。它抛出了一个错误

错误:用作表达式的子查询返回多行

我猜它是因为子查询中的 GROUP BY 而发生的,并且可以使用 row_to_json 函数处理,但不知道我应该将它放在表达式中的哪个位置。ORDER BY 不起作用 GROUP BY 表达式,因为 SELECT 中存在聚合函数。

SQL 版本

x86_64-pc-linux-gnu 上的 PostgreSQL 11.8 (Ubuntu 11.8-1.pgdg18.04+1),由 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 编译,64 位