在CoolaData中,我们处理大量数据,支持行为分析。我在一个不包含别名的select语句中运行生成错误字段名的查询,即 - "从...中选择a.dt,a.device_type;"
我发现的是,而不是以下结果:" 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采取不同的行动?
答案 0 :(得分:0)
我认为上述问题实际上就是这个特征:o)
1)当你没有明确地提供别名时 - 它是用点符号构造的,用点替换为下划线
SELECT a.dt FROM( .. --> a_dt in output
上面将使用a_dt命名字段
生成输出如果您希望将名称命名为dt,则应使用以下方法
SELECT a.dt as dt FROM( .. --> dt in output
2)如果您需要从子选择 -
引用字段SELECT a_dt FROM( .. --> error
你仍然需要使用如下的点符号
SELECT a.dt FROM( .. --> a_dt in output
或
SELECT a.dt as dt FROM( .. --> dt in output
3)到目前为止,没有任何配置可以改变这一点(至少我知道)