【发布时间】:2020-06-01 04:20:06
【问题描述】:
测试数据链接:http://sqlfiddle.com/#!15/dce01/1/0
我想按照 seq 列指定的顺序聚合 gid 中每个组的 items 列(使用 listagg),基于当 pid 再次变为 0 时聚合结束的条件。
即 对于组 g1,将有 2 个聚合; 1 用于序列 1-3,另一个用于序列 4-6;因为对于组 g1,对于 seq 4,pid 变为 0。
【问题讨论】:
-
@a_horse_with_no_name:我需要在 redshift 上运行查询。但是,由于 sqlfiddle 没有用于 redshift 引擎的选项,因此我使用 postgres db 创建了测试数据,原因与您指出的完全相同(关于它们共享共同的根)。此外,postgres 查询可以与 redshift 中的一些 mod 一起运行,例如。
listaggpostgres 的替代方案是string_agg
标签: sql group-by amazon-redshift window-functions gaps-and-islands