0

我有一个数据集,其中一列是 Branch-ID,另一列是 Branch Manager,它在给定的 url 中如下所示。 数据集

我想根据分支 ID 将分支经理组合成一列。例如,如果 Bob 和 Sandra 是两个不同的分支经理,但具有相同的分支 id,即 branch-id=1,那么我们应该将它们连接在一起作为 Bob-Sandra,并将它们放在单独创建的列中。

我附上了上述数据集的预期输出。预期输出数据集

我目前正在使用Oracle Analytics Cloud 专业版

4

1 回答 1

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>
于 2021-05-02T19:27:51.043 回答