gpt4 book ai didi

google-cloud-platform - 参数类型 ARRAY 的运算符 IN 没有匹配的签名

转载 作者:行者123 更新时间:2023-12-04 23:24:27 25 4
gpt4 key购买 nike

我想使用“WHERE xxx IN ('aaa','bbb')”执行以下标准 SQL。

但是发生了错误。是否可以在标准 SQL 中使用“IN”?

标准 SQL

SELECT commit, author.name, committer.name, committer.time_sec,
committer.tz_offset, committer.date.seconds , subject, message,
repo_name
FROM `bigquery-public-data.github_repos.commits`
WHERE repo_name IN
('tensorflow/tensorflow', 'facebook/react')

错误

No matching signature for operator IN for argument types ARRAY<STRING> and {STRING} at [5:17]

以下旧版 SQL 似乎可以执行。

旧版 SQL

SELECT commit, author.name, committer.name, committer.time_sec,
committer.tz_offset, committer.date.seconds , subject, message,
repo_name
FROM [bigquery-public-data:github_repos.commits]
WHERE repo_name IN
('tensorflow/tensorflow', 'facebook/react')

最佳答案

在标准 SQL 中你不能真正这样做。但在这篇文章中How to use the UNNEST function in BigQuery to analyze event parameters in Analytics他们解释得很好。

我认为这就是您获得所需结果的方式:

SELECT commit, author.name as author_name, committer.name as committer_name, committer.time_sec,
committer.tz_offset, committer.date.seconds , subject, message,
repo_name
FROM `bigquery-public-data.github_repos.commits`
CROSS JOIN UNNEST(repo_name) as repo_names_unnested
WHERE repo_names_unnested IN ('tensorflow/tensorflow', 'facebook/react')

请注意,您不能同时拥有 author.namecommitter.name,因为两者都会显示为 name。因此,我将它们更改为 author_namecommitter_name

我还认为您实际上正在寻找的是将 repo_name 替换为 repo_names_unnested 的结果,因此请尝试在 SELECT 子句中也替换它。

关于google-cloud-platform - 参数类型 ARRAY<STRING> 的运算符 IN 没有匹配的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56848162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com