如何在 Oracle Analytics Cloud 专业版中实现具有相同 id 的列中条目的字符串连接?
Posted
技术标签:
【中文标题】如何在 Oracle Analytics Cloud 专业版中实现具有相同 id 的列中条目的字符串连接?【英文标题】:How to achieve string concatentation of entries in column having same id in Oracle Analytics Cloud Professional Edition? 【发布时间】:2021-05-02 18:31:13 【问题描述】:我有一个数据集,其中一列是 Branch-ID,另一列是 Branch Manager,它在给定的 url 中如下所示。 dataset
我想根据分支 ID 将分支经理合并为一列。例如,如果 Bob 和 Sandra 是两个不同的分支经理,但具有相同的分支 id,即 branch-id=1,那么我们应该将它们连接在一起作为 Bob-Sandra,并将它们放在单独创建的列中。
我已附加上述数据集的预期输出。 expected_output_dataset
我目前正在使用 Oracle Analytics Cloud 专业版。
【问题讨论】:
【参考方案1】:我不了解 Oracle 分析,但是 - 如果它与 Oracle 数据库及其功能有关,那么 listagg
会有所帮助。
#1 - 10 行中的示例数据;您可能感兴趣的查询从第 11 行开始。
SQL> with test (account_id, branch_id, branch_manager) as
2 (select 1, 123, 'Sandra' from dual union all
3 select 3, 124, 'Martha' from dual union all
4 select 4, 125, 'John' from dual union all
5 select 6, 126, 'Andrew' from dual union all
6 select 7, 126, 'Mathew' from dual union all
7 select 2, 123, 'Michael' from dual union all
8 select 5, 125, 'David' from dual union all
9 select 8, 126, 'Mark' from dual
10 )
11 select a.account_id, a.branch_id, a.branch_manager,
12 b.concatenated_column
13 from test a join (select branch_id,
14 listagg(branch_manager, '-') within group (order by null) concatenated_column
15 from test
16 group by branch_id
17 ) b on b.branch_id = a.branch_id;
ACCOUNT_ID BRANCH_ID BRANCH_ CONCATENATED_COLUMN
---------- ---------- ------- -------------------------
1 123 Sandra Michael-Sandra
3 124 Martha Martha
4 125 John David-John
6 126 Andrew Andrew-Mark-Mathew
7 126 Mathew Andrew-Mark-Mathew
2 123 Michael Michael-Sandra
5 125 David David-John
8 126 Mark Andrew-Mark-Mathew
8 rows selected.
SQL>
【讨论】:
以上是关于如何在 Oracle Analytics Cloud 专业版中实现具有相同 id 的列中条目的字符串连接?的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure Synapse Analytics(Azure SQL 数据仓库)中创建外部数据源到 Oracle
Machine Learning with Oracle Database Advanced Analytics
具有“NULL”值的 Oracle SQL Analytics 函数 FirstValue