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

如何用BigQuery SQL将表1的Name字段随机填充到表2的User列?

BigQuery SQL实现随机填充用户名称到目标表

方法1:批量随机分配(可控覆盖所有行,随机重复)

如果需要给表2每行随机分配表1名称,且希望分配逻辑更可控,可使用以下SQL:

WITH ranked_table2 AS (
  -- 给表2每行生成唯一序号
  SELECT 
    Month,
    Year,
    ROW_NUMBER() OVER () AS row_num
  FROM `your-project.your-dataset.table2`
),
random_name_pool AS (
  -- 生成足够覆盖表2行数的随机名称序列
  SELECT 
    Name,
    ROW_NUMBER() OVER (ORDER BY RAND()) AS row_num
  FROM `your-project.your-dataset.table1`
  CROSS JOIN UNNEST(GENERATE_ARRAY(1, (SELECT COUNT(*) FROM `your-project.your-dataset.table2`)))
)
-- 更新表2的User列
UPDATE `your-project.your-dataset.table2` t2
SET User = rnp.Name
FROM ranked_table2 rt2
JOIN random_name_pool rnp ON rt2.row_num = rnp.row_num
WHERE t2.Month = rt2.Month AND t2.Year = rt2.Year;

方法2:单条随机选取(简单直接,允许重复)

若无需复杂分配逻辑,仅需每行独立随机选表1名称,用更简洁的写法:

UPDATE `your-project.your-dataset.table2`
SET User = (
  SELECT Name 
  FROM `your-project.your-dataset.table1`
  ORDER BY RAND() 
  LIMIT 1
);

注意事项

  • 替换SQL中的your-project.your-dataset为实际的BigQuery项目ID和数据集名称
  • 方法1通过序号关联确保每行都分配到名称,重复情况随机;方法2每行独立随机选取,可能出现大量重复名称
  • 执行UPDATE前建议先运行SELECT语句验证匹配结果,比如将方法1的UPDATE替换为SELECT查看分配情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:25:34