将 Teradata SQL 转换为 BigQuery SQL

Convert Teradata SQL to BigQuery SQL

如何将以下 sql 转换为 bigquery?

SELECT
MAX(var1)*2 as name1,
name1+11 as name2
FROM table

在 bigquery 中,如果我在上面的行中声明了 name1,我将无法使用它。

我知道我可以做到这一点,但是当 sql 很大时需要更改很多,可能还有其他更简单的选择。

SELECT
MAX(var1)*2 as name1,
MAX(var1)*2+11 as name2
FROM table

您不能以这种方式在 BigQuery 上重复使用别名,您将不得不重复完整的表达式或子查询。假设前一个选项:

SELECT MAX(var1)*2 AS name1,
       MAX(var1)*2 + 11 AS name2
FROM yourTable;

唯一的其他选择是子查询:

WITH cte AS (
    SELECT MAX(var1)*2 AS name1
    FROM yourTable
)

SELECT name1, name1 + 11 AS name2
FROM cte;

但是从性能的角度来看,子查询版本比第一个版本增加了成本。您可能应该重复别名表达式 除非 您确实需要重复很多代码。