如何根据特定列 SQL Oracle 的唯一值混合三行?

How can I Mix three rows based on the unique value of specific column SQL Oracle?

我想在 Oracle Developer 中编写一个 sql 查询以将三行转换为一行并合并这些行的值。

table 有三列。 column1 : NUMBER(10,0) 列 2:VARCHAR2(15 个字符) 第 3 列:时间戳(6)

我将第 2 列和第 3 列合并为一列。 起初我有:

我想根据 column1 的值(即 41)合并这三行。我想在最后一行:

你能帮我找到正确的查询吗?

编辑 by mathguy: oracle-sqldeveloper 标签是相关的,因为在写了正确的查询之后,仍然存在能够看到它的问题是"correct" 在 SQL 开发人员的查询结果 Window 中。这有点问题,因为 SQL 开发人员删除了白色 space 所以不清楚结果是否真的正确。这在评论和答案中进行了讨论。

select column1,
       listagg(column2 || ' ' || to_char(column3, 'dd-MON-rr hh:mi:ss.ff6 AM'), chr(10)) 
               within group (order by column3)
from   table_name
group by column1
;

(未测试。)

这会将文本列显示为单个 table 行,但会显示为三行文本。

您可能还想为第二列指定一个别名。