Google bigquery Google BigQuery SQL:在具有Concat函数的字段上“未找到字段”
我遇到BigQuery无法识别我指定的使用Concat字符串的字段键的问题:Google bigquery Google BigQuery SQL:在具有Concat函数的字段上“未找到字段”,google-bigquery,Google Bigquery,我遇到BigQuery无法识别我指定的使用Concat字符串的字段键的问题: SELECT T2.MinHit, CONCAT(CAST(T1.visitId AS STRING), CASE WHEN T1.hits.page.searchKeyword IS NULL THEN "(NULL)" ELSE T1.hits.page.searchKeyword END) AS Key1, CONCAT("https://", T1.hits.page.hostname, T1.hits.pag
SELECT
T2.MinHit,
CONCAT(CAST(T1.visitId AS STRING), CASE WHEN T1.hits.page.searchKeyword IS NULL THEN "(NULL)" ELSE T1.hits.page.searchKeyword END) AS Key1,
CONCAT("https://", T1.hits.page.hostname, T1.hits.page.pagePath) AS urlPage
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801] AS T1
INNER JOIN (
SELECT
CONCAT(CAST(visitId AS STRING), CASE WHEN hits.page.searchKeyword IS NULL THEN "(NULL)" ELSE hits.page.searchKeyword END) AS Key2,
MIN(hits.hitNumber) AS MinHit
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801]
GROUP BY Key1 ) AS T2
ON T1.Key1 = T2.Key2
我还注意到,使用一个简单的Where函数Key1 NOT NULL再次返回一个未找到字段的错误
有什么想法可以让我绕过这个问题吗 成功了。我似乎忽略了我需要在第一个表中首先声明连接字段的事实:
SELECT
T1.SKey,
T1.urlPage,
T2.MinHit
FROM
(
SELECT
CONCAT(CAST(visitId AS STRING),CASE WHEN hits.page.searchKeyword IS NULL THEN "(NULL)" ELSE hits.page.searchKeyword END) as SKey,
CONCAT("https://", hits.page.hostname, hits.page.pagePath) as urlPage,
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801]
GROUP BY SKey, urlPage
)
AS T1
INNER JOIN
(
SELECT
CONCAT(CAST(visitId AS STRING),CASE WHEN hits.page.searchKeyword IS NULL THEN "(NULL)" ELSE hits.page.searchKeyword END) as SKey,
MIN(hits.hitNumber) as MinHit
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801]
GROUP BY SKey
) AS T2
ON T1.SKey = T2.SKey
无论如何,案例陈述是没有必要的,我添加了它,因为我认为这样可以解决问题。
以下是经过修订且更准确的查询:
SELECT
T1.SKey,
T1.urlPage,
T2.MinHit
FROM
(
SELECT
CONCAT(CAST(visitId AS STRING), hits.page.searchKeyword) as SKey,
CONCAT("https://", hits.page.hostname, hits.page.pagePath) as urlPage,
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801]
GROUP BY SKey, urlPage
)
AS T1
INNER JOIN
(
SELECT
CONCAT(CAST(visitId AS STRING), hits.page.searchKeyword) as SKey,
MIN(hits.hitNumber) as MinHit
FROM [bigquery-public-data:google_analytics_sample.ga_sessions_20170801]
GROUP BY SKey
) AS T2
ON T1.SKey = T2.SKey
使用标准SQL而不是传统SQL