我在表中有 ID 和 Player 列,我试图根据 ID 值在一行中列出所有玩家。
因此,例如 ID 1610612748 将只有一行,并且该行的玩家列中列出的所有玩家用逗号分隔。
答案 0 :(得分:2)
我认为您正在寻找 LIST_AGG 聚合函数。这样的事情应该可以工作:
创建示例表:
create or replace transient table test_table(id number, player number) as
select
column1 as id,
column2 as player
from
values
(1610612748, 123),
(1610612748, 231),
(1610612748, 333),
(1610612748, 321),
(1111111111, 123),
(1111111111, 421),
(2222222222, 123)
;
运行查询
select
id,
listagg(player ,',')
from test_table
group by id
结果
+----------+--------------------+
|ID |LISTAGG(PLAYER ,',')|
+----------+--------------------+
|1111111111|123,421 |
|2222222222|123 |
|1610612748|123,231,333,321 |
+----------+--------------------+