我使用SQL UNION ALL 将多个表附加到一个表中。如何为新表指定名称?

问题描述 投票:0回答:1

我是一名 SQL 初学者,从事 Google 数据分析 Capstone 项目。我需要分析 12 个表,其中包含 13 列和超过 500 万行的组合。我在 Google BigQuery 中运行查询并使用 UNION ALL 语句将表附加到一个新表中。现在,我想根据 column3 和 column4 之间的差异创建一个新列。如果不在 12 个表的每个表的 select 语句中重复公式,我该如何做到这一点?有没有办法为新表分配名称或变量(?),这样我的代码看起来更干净?

我尝试创建一个临时表,但它没有用,现在我被卡住了。

sql google-bigquery temp-tables
1个回答
0
投票

您可以为此使用 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
)

然后像往常一样查询这个新表。

© www.soinside.com 2019 - 2024. All rights reserved.