Google bigquery Google BigQuery-基于一列获取唯一行
你有这个大疑问吗Google bigquery Google BigQuery-基于一列获取唯一行,google-bigquery,Google Bigquery,你有这个大疑问吗 select JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url, JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language, integer(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_
select JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url, JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language, integer(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_count")) as stars from githubarchive:day.20200115 where JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language")="C" group by language,clone_url,stars order by stars DESC limit 1000;
它返回多个带有唯一“星号”的“克隆url”条目
如何仅显示克隆url的最高唯一starcount
这个查询可以优化吗
以下是查询结果:
谢谢,看起来您仍然在使用BigQuery遗留SQL-下面是遗留SQL
#legacySQL
SELECT
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url,
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language,
MAX(INTEGER(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_count"))) AS stars
FROM [githubarchive:day.20200115]
WHERE JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language")="C"
GROUP BY language, clone_url
ORDER BY stars DESC
LIMIT 1000
请注意:强烈建议迁移到BigQuery标准SQL,因此上面的内容如下所示
#standardSQL
SELECT
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url,
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language,
MAX(CAST(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_count") AS INT64)) AS stars
FROM `githubarchive.day.20200115`
WHERE JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language")="C"
GROUP BY language, clone_url
ORDER BY stars DESC
LIMIT 1000
上述两个查询都将返回如下内容
看起来您仍然在使用BigQuery遗留SQL—下面是遗留SQL的介绍
#legacySQL
SELECT
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url,
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language,
MAX(INTEGER(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_count"))) AS stars
FROM [githubarchive:day.20200115]
WHERE JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language")="C"
GROUP BY language, clone_url
ORDER BY stars DESC
LIMIT 1000
请注意:强烈建议迁移到BigQuery标准SQL,因此上面的内容如下所示
#standardSQL
SELECT
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.clone_url") AS clone_url,
JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language") AS language,
MAX(CAST(JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.stargazers_count") AS INT64)) AS stars
FROM `githubarchive.day.20200115`
WHERE JSON_EXTRACT_SCALAR(payload, "$.pull_request.base.repo.language")="C"
GROUP BY language, clone_url
ORDER BY stars DESC
LIMIT 1000
上述两个查询都将返回如下内容