您熟悉没有别名时的大查询问题吗?
Are you familiar to the big query issue when there is no alias?
在 CoolaData,我们处理大量数据,支持行为分析。我只是 运行 在不包含别名的 select 语句中生成了错误的字段名称,即 - "select a.dt, a.device_type from..."
我发现,而不是以下结果:"a.dt" 应该导致 - "dt","a.device_type" 应该导致 - "device_type"。
大查询错误地导致不同的名称,即:"a.dt" 被错误地命名为 "a_dt",而 "a.device_type" 被错误地命名为 - "a_device_type".
不工作:
SELECT 1 AS Number_of_Records, Custom_SQL_Query.a_device_type AS
a_device_type, Custom_SQL_Query.a_dt AS a_dt, FROM
( SELECT a.dt, a.device_type, FROM ( SELECT DATE(event_time_ts) AS
dt, lp_device_type AS device_type, item_id AS item_id, FROM
coola_demo_v2_dataset.pv60_session) AS
a LEFT JOIN EACH ( SELECT item_id AS item_id, FROM
coola_demo_v2_dataset.arm_item_dim) AS b ON a.item_id = b.item_id GROUP EACH BY
1, 2 LIMIT 10) AS Custom_SQL_Query
工作:
SELECT * FROM ( SELECT a.dt, a.device_type, FROM
( SELECT DATE(event_time_ts) AS dt, lp_device_type AS
device_type, item_id AS item_id, FROM
coola_demo_v2_dataset.pv60_session) AS
a LEFT JOIN EACH ( SELECT item_id AS item_id, FROM
coola_demo_v2_dataset.arm_item_dim) AS
b ON a.item_id = b.item_id GROUP EACH BY
1, 2 LIMIT 10) AS Custom_SQL_Query
你熟悉这个问题吗?是否有配置 BigQuery 以不同方式操作的选项?
我认为上面描述的问题实际上是特征:o)
1) 当您没有明确提供别名时 - 它是在点符号之后构造的,点替换为下划线
SELECT a.dt FROM( .. --> a_dt in output
以上将产生带有 a_dt 命名字段
的输出
如果您希望将 filed 命名为 dt,则应使用以下方法
SELECT a.dt as dt FROM( .. --> dt in output
2) 如果你需要引用子字段 - select -
SELECT a_dt FROM( .. --> error
你仍然需要像下面这样使用点符号
SELECT a.dt FROM( .. --> a_dt in output
或
SELECT a.dt as dt FROM( .. --> dt in output
3) 到目前为止,没有任何配置可以为您更改此设置(至少据我所知)
在 CoolaData,我们处理大量数据,支持行为分析。我只是 运行 在不包含别名的 select 语句中生成了错误的字段名称,即 - "select a.dt, a.device_type from..."
我发现,而不是以下结果:"a.dt" 应该导致 - "dt","a.device_type" 应该导致 - "device_type"。 大查询错误地导致不同的名称,即:"a.dt" 被错误地命名为 "a_dt",而 "a.device_type" 被错误地命名为 - "a_device_type".
不工作:
SELECT 1 AS Number_of_Records, Custom_SQL_Query.a_device_type AS
a_device_type, Custom_SQL_Query.a_dt AS a_dt, FROM
( SELECT a.dt, a.device_type, FROM ( SELECT DATE(event_time_ts) AS
dt, lp_device_type AS device_type, item_id AS item_id, FROM
coola_demo_v2_dataset.pv60_session) AS
a LEFT JOIN EACH ( SELECT item_id AS item_id, FROM
coola_demo_v2_dataset.arm_item_dim) AS b ON a.item_id = b.item_id GROUP EACH BY
1, 2 LIMIT 10) AS Custom_SQL_Query
工作:
SELECT * FROM ( SELECT a.dt, a.device_type, FROM
( SELECT DATE(event_time_ts) AS dt, lp_device_type AS
device_type, item_id AS item_id, FROM
coola_demo_v2_dataset.pv60_session) AS
a LEFT JOIN EACH ( SELECT item_id AS item_id, FROM
coola_demo_v2_dataset.arm_item_dim) AS
b ON a.item_id = b.item_id GROUP EACH BY
1, 2 LIMIT 10) AS Custom_SQL_Query
你熟悉这个问题吗?是否有配置 BigQuery 以不同方式操作的选项?
我认为上面描述的问题实际上是特征:o)
1) 当您没有明确提供别名时 - 它是在点符号之后构造的,点替换为下划线
SELECT a.dt FROM( .. --> a_dt in output
以上将产生带有 a_dt 命名字段
的输出如果您希望将 filed 命名为 dt,则应使用以下方法
SELECT a.dt as dt FROM( .. --> dt in output
2) 如果你需要引用子字段 - select -
SELECT a_dt FROM( .. --> error
你仍然需要像下面这样使用点符号
SELECT a.dt FROM( .. --> a_dt in output
或
SELECT a.dt as dt FROM( .. --> dt in output
3) 到目前为止,没有任何配置可以为您更改此设置(至少据我所知)