首页 > 解决方案 > 从一个数据集中的表中计数,并将其添加到不同数据集中的表中的列

问题描述

我正在尝试使用 BigQuery 在 GCP 的 AI Notebooks 上运行 SQL 查询。我想计算单独数据集中表中不同行的数量,并将其添加到不同数据集中表中的列中。

不确定这是否可能。我似乎在挣扎(对 SQL 来说相对较新)。这是脚本和错误。我还没有找到完全等价的东西。基于这篇文章的代码。

%%bigquery 
UPDATE `project-id.dataset1.table1` t 
    SET var1 = (SELECT COUNT(DISTINCT var2)
                            FROM `project-id.dataset2.other_table` t2
                            WHERE t2.id = t.id
                           )
    FROM `project-id.dataset1.table1` t;

这会产生错误

ERROR:
 400 Alias t in the FROM clause was already defined as the UPDATE target at [6:5]

如果我删除最后一行,这对我来说有点多余,我会得到一个不同的错误

ERROR:
 400 UPDATE must have a WHERE clause at [1:1]

标签: google-bigquery

解决方案


下面使用

update `project-id.dataset1.table1` t
set var1 = (
  select count(distinct var2)
  from `project-id.dataset2.other_table` t2
  where t2.id =t.id
)
where true;

推荐阅读