我是一名 SQL 初学者,从事 Google 数据分析 Capstone 项目。我需要分析 12 个表,其中包含 13 列和超过 500 万行的组合。我在 Google BigQuery 中运行查询并使用 UNION ALL 语句将表附加到一个新表中。现在,我想根据 column3 和 column4 之间的差异创建一个新列。如果不在 12 个表的每个表的 select 语句中重复公式,我该如何做到这一点?有没有办法为新表分配名称或变量(?),这样我的代码看起来更干净?
我尝试创建一个临时表,但它没有用,现在我被卡住了。
您可以为此使用 CTE:
WITH MY_TABLE as (
-- you query with union alls
)
select *, column3-column4 new_col from MY_TABLE
但这不是一张桌子。一旦你运行它,你所有的内部查询都会被执行。
如果你想要真正的桌子,我相信你可以创建这样的桌子:
create table as (
-- you query with union alls
)
然后像往常一样查询这个新表。