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

在Snowflake SQL中如何为表A的category列添加表B的唯一类别值

Snowflake SQL 实现方案

要将表B的类别添加到表A的每个用户下并保留唯一值,可以通过交叉连接生成用户与B类别的组合,再与原表数据合并去重实现,具体SQL如下:

SELECT uid, category
FROM A
UNION
SELECT a.uid, b.category
FROM (SELECT DISTINCT uid FROM A) a
CROSS JOIN B
ORDER BY uid, category;

代码说明:

  1. 获取原始数据:SELECT uid, category FROM A直接取出表A的所有原有记录
  2. 生成用户与B类别的组合:
    • (SELECT DISTINCT uid FROM A)先提取表A中所有唯一的用户ID
    • 通过CROSS JOIN B让每个用户ID与表B的所有类别进行组合,得到每个用户对应B中类别的新记录
  3. 合并去重:使用UNION合并原始数据和新生成的记录,UNION会自动剔除重复的(uid, category)组合
  4. 排序:ORDER BY uid, category让结果按用户ID和类别排序,与期望输出一致

执行上述SQL后,即可得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:40:25