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

Redshift SQL实现:ID不唯一时拼接ID/X/Y生成NEW_ID

Redshift实现动态生成NEW_ID的SQL方案

直接用窗口函数+条件判断就能搞定,不用复杂的关联操作,完整SQL如下:

SELECT
    ID,
    X,
    Y,
    CASE
        -- ID唯一时直接取原ID作为NEW_ID
        WHEN COUNT(*) OVER(PARTITION BY ID) = 1 THEN ID::VARCHAR
        -- ID重复时用下划线拼接ID、X、Y
        ELSE CONCAT_WS('_', ID, X, Y)
    END AS NEW_ID
FROM
    your_table_name; -- 替换成你的实际表名

关键说明:

  • 用COUNT(*) OVER(PARTITION BY ID)窗口函数,一行就能算出每个ID在表中的总出现次数,比你原来的子查询+JOIN写法更高效,无需额外关联表
  • 选用CONCAT_WS而非CONCAT:CONCAT_WS会自动用指定分隔符(这里是下划线)拼接参数,还能自动忽略空值,比直接写CONCAT(ID, '_', X, '_', Y)更健壮
  • 把ID转成VARCHAR:因为拼接后的NEW_ID是字符串类型,统一类型可避免隐式转换问题
  • 完全适配Redshift语法,在Coginiti中可直接运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:50:23