问题标签 [listagg]

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 回答
901 浏览

oracle - 使用组内更新

我已经编写了以下语句,它以我需要更新另一个表的格式返回数据,但是我正在努力更新

我做了一个基本的转换成 UPDATE 语句

这收到“ORA-00934:此处不允许组功能”错误。我不确定如何删除组功能但保留我需要的数据格式?

0 投票
2 回答
1126 浏览

oracle - 从 oracle 中的 listagg 中删除重复值

我曾经listagg将书籍与补充书籍名称一起连接和列出。

但由于补充书的数量更多,我反复得到主书名。

有没有办法删除重复的主书名和号码。

我的输出是这样的

-99,Anders Carlson ,-109,John Stuart,-99,Anders Carlson ,-47,James Anderson

这里重复值 99 我只想要一个 99。

期望的输出:

-99,Anders Carlson ,-109,John Stuart,-47,James Anderson

数据库数据:

书单:

作者:

补充:

输出应该像

同样对于表中的整个数据

0 投票
1 回答
8398 浏览

sql - Oracle Listagg 子查询

它抛出错误为

ORA-01722: 无效号码

01722. 00000 - “无效号码”

*原因:指定的号码无效。

*行动:指定一个有效的数字。

0 投票
3 回答
127 浏览

sql - SQL 连接其中一列

我有以下输出:

我想基本上根据投资组合名称、相同的段和相同的编号连接所有行。正如您所看到的,有时 number 也可以为空。

基本上我想要这个例子的最终输出是:

我尝试过使用 listagg 但无法弄清楚...

希望你能理解我的问题。

0 投票
1 回答
386 浏览

sql - SQL 使用 LISTAGG() 将 10 个一组的列连接起来

我需要帮助编写一个查询,该查询可以以 10 个为一组连接其中一个列。

例子:

由于 SQL 不允许连接太大的字符串,我想一次将 10 个分组,以便得到:

谢谢

0 投票
1 回答
118 浏览

sql - 连接来自同一字段的多行的值,聚合

我有一个数据集,其中一列中的名称以及其他几列。我想显示字段中所有其他值的相同位置,连接名称。

例如

输出为:

我试过使用 rtrim 但它什么也没做。我也尝试使用 listagg 但我收到错误“不是按表达式分组”

所有字段都是字符串,不可计算。

TIA

0 投票
1 回答
566 浏览

oracle11g - 具有多个子查询的 Oracle 11g LISTAGG 函数

我正在开发 Oracle 11g,我正在尝试编写一个插入“?”的查询。两个日期之间的所有缺失月份。这是我能够实现的。但是,现在我想将特定列的所有记录整理到一条记录中。我已经使用 LISTAGG 函数来实现这一点,但是对于 LISTAGG 函数中的列,我收到错误“无效标识符”。这是我的代码:-

Select facilitynumber, LISTAGG(facilitystatus, '') WITHIN GROUP (ORDER BY null) "Profile" FROM ( WITH allmonths AS ( SELECT to_date(level, 'MM') AS allmnths FROM dual CONNECT BY LEVEL BETWEEN '01' AND '05' ), months AS ( SELECT * FROM ( SELECT ccds.facilitynumber,ccds.facilitystatus, dsub.filecreationdate as FacilityStatusDate, dsub.submissiondate, ROW_NUMBER() OVER (partition by ccds.facilitynumber,extract(month from dsub.submissiondate) order by dsub.submissiondate DESC) r FROM ccdssubmissions ccds INNER JOIN datasubmission dsub ON ccds.datasubmissionid = dsub.datasubmissionid INNER JOIN datasupplier dsup ON dsub.datasupplierid = dsup.datasupplierid WHERE ccds.matchedcompanynumber = 'TEST9239' ORDER BY dsub.submissiondate DESC ) where r = 1) SELECT allmnths, CASE WHEN facilitystatus IS NULL THEN '?' ELSE facilitystatus END AS "facilitystatus", submissiondate, facilitynumber FROM allmonths LEFT OUTER JOIN months ON extract(month from allmonths.allmnths) = extract(month from months.submissiondate) order by allmnths ) GROUP BY facilitynumber;

我在第二行本身面临错误。我的子查询,即从“WITH”开始的查询返回结果如下:-

现在使用 LISTAGG(facilitystatus, ''),我希望我的结果是 ->

但是,Oracle 无法识别 facilitystatus 列,因此我无法达到预期的结果。

任何帮助将不胜感激。

谢谢

0 投票
1 回答
482 浏览

sql - oracle listagg 结果太长

listagg()用来聚合字符串值

例如,有一个这样的表:

我们得到结果:

如果 COMRANK 变得太长怎么办?我可以在汇总之前找到 top xxx 吗?

0 投票
0 回答
1164 浏览

oracle11g - ORA-00923: 在预期的地方找不到 FROM 关键字 - LISTAGG

我必须用逗号分隔一列的所有值,为此我使用 LISTAGG 函数,但出现错误

“ORA-00923:在预期的地方找不到 FROM 关键字”

请在下面找到我正在使用的代码。请建议我为什么会收到此错误。

0 投票
2 回答
819 浏览

sql - 按外键分组并获取新行

我需要计算人员表中的所有外键,并列出person_id是否多次引用外键。person_id如果我在一个单元格中列出所有内容,这并不复杂。

例如,如果我有这张桌子:

我可以做这个 sql 查询:

结果将是:

我的问题是用户要求,因为他需要的person_id不是单行而是每行person_id

所以它必须是这样的: