Sql 根据值的数量将行转换为逗号分隔的值
因为列表值的长度有限制 我需要将这些行转换为一个最多2400行的值列表,其余的转换为下一个值列表Sql 根据值的数量将行转换为逗号分隔的值,sql,snowflake-cloud-data-platform,Sql,Snowflake Cloud Data Platform,因为列表值的长度有限制 我需要将这些行转换为一个最多2400行的值列表,其余的转换为下一个值列表 with data as ( select row_number()over(order by seq8()) as rn from table(generator(rowcount=>10000)) ) select listagg(rn, ',') as list from data; 这在SQL中可能吗 下面的查询将所有行转换为一个列表。如果值列表的长度超过2400个值
with data as (
select row_number()over(order by seq8()) as rn
from table(generator(rowcount=>10000))
)
select listagg(rn, ',') as list
from data;
这在SQL中可能吗
下面的查询将所有行转换为一个列表。如果值列表的长度超过2400个值,则API不接受
select listagg(id, ',') as id_list from table;
范例
如果一个表有30行,那么前10行应该进入一个值列表,第二个10行应该进入第二个值列表,其余的值应该进入最后一个值列表
with data as (
select row_number()over(order by seq8()) as rn
from table(generator(rowcount=>10000))
)
select listagg(rn, ',') as list
from data;
表示没有限制。。但这并不是很有用
所以要做你想做的事
with data as (
select row_number()over(order by seq8()) as rn
from table(generator(rowcount=>10000))
)
select listagg(rn, ',') within group (order by rn) as list
from data
group by floor(rn/2400)
order by 1;
给您五行(截断由我完成,只是为了显示数据是如何按照您的要求进行分区的)
那么,您是在问“是否有限制”还是“如何将每个分区划分为最多N行的列表”?非常感谢。。我喜欢这个