You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中如何将整数列按单元格值拆分为多行?

实现Snowflake中按整数列拆分多行的方法

这在Snowflake里很容易实现,核心思路是根据每行的New Value数值生成对应数量的重复行,再把New Value统一设为1。给你两种常用的实现方式:

方法一:使用GENERATOR + LATERAL JOIN

这种方法通过GENERATOR函数生成指定行数的空记录,再通过LATERAL JOIN关联原表数据:

SELECT 
    t."Account ID",
    t."Ad ID",
    1 AS "New Value"
FROM your_table t
JOIN LATERAL (
    -- 根据当前行的New Value生成对应数量的行
    SELECT 1
    FROM TABLE(GENERATOR(ROWCOUNT => t."New Value"))
) seq
ON TRUE;

方法二:使用ARRAY_GENERATE_RANGE + FLATTEN

这种方法先生成一个从1到New Value的数组,再通过FLATTEN将数组拆分为多行:

SELECT 
    t."Account ID",
    t."Ad ID",
    1 AS "New Value"
FROM your_table t,
-- 生成数组并拆分行,数组长度等于New Value的数值
TABLE(FLATTEN(ARRAY_GENERATE_RANGE(1, t."New Value" + 1))) f;

测试示例

如果你想验证效果,可以先创建临时测试表并插入你的示例数据:

CREATE OR REPLACE TEMP TABLE test_data (
    "Account ID" VARCHAR,
    "Ad ID" VARCHAR,
    "New Value" INTEGER
);

INSERT INTO test_data VALUES
('A1', 'B1', 2),
('D2', 'C2', 4);

然后运行上面任意一种查询语句,就能得到你想要的拆分结果。

内容的提问来源于stack exchange,提问作者Conor C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:47:47