arrays - Google BigQuery SQL:使用数组?
问题描述
我是 SQL 和 Google BigQuery 的新手。我正在尝试运行以下查询以获取名称和计数列表,但是我看到我收到一个数组错误并且不知道如何修复它。任何帮助表示赞赏。
错误信息:
无法访问在 [5:27] 与类型为 ARRAY 的值协调的字段
#standardSQL
-- Applications_Per_Assignee
SELECT assignee_harmonized.name AS Assignee_Name, COUNT(*) AS Number_of_Patent_Apps
FROM (
SELECT ANY_VALUE(assignee.harmonized.name) AS Assignee_Name
FROM `patents-public-data.patents.publications` AS patentsdb
GROUP BY Number_of_Patent_Apps
)
GROUP BY assignee_harmonized.name
ORDER BY Number_of_Patent_Apps DESC;
解决方案
看起来您的查询有一些问题。
assignee
是一个字符串,我想你想看看assignee_harmonized.name
- 你会想要
UNNEST()
assignee_harmonized
ANY_VALUE()
只选择一个随机值,听起来不像你想要的- 您的内部选择中有一个
GROUP BY
,它不会给您想要的结果 - 对于这种类型的查询,您真的不需要子查询。
#standardSQL
SELECT ah.name AS Assignee_Name, COUNT(*) AS Number_of_Patent_Apps
FROM `patents-public-data.patents.publications` AS patentsdb
LEFT JOIN UNNEST(assignee_harmonized) ah
GROUP BY 1
ORDER BY 2 DESC
推荐阅读
- python - 类型错误:& 不支持的操作数类型:Python 中的“str”和“int”
- android - android导航组件在片段方向之间传递数据
- linux - 鱼壳中的源命令
- entity-framework - 更新实体框架中的对象失败
- c++ - 在 C++ 中为 double 类型的数组创建一个 unique_ptr
- python - 如何向所有服务器发送消息 discord py
- reactjs - Firebase 用户模型。无法创建 Firebase 模型
- c++ - https服务器如何创建可信证书列表,客户端总是得到未知的CA
- swift - 在 swift 的泛型中使用带有类型约束的协议
- spring-boot - 无法从 YAML 中读取密钥