sql - 如何在 UNNEST 语句中转换数组元素
问题描述
我在 BigQuery 中有一个REPEATED
类型的列ARRAY[STRING]
,我想在其上创建一个过滤器来执行此操作:
SELECT campaign,
event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND "1" IN UNNEST(split(event_list,","))
除了我不想寻找"1"
,我想将列event_list
转换integer_event_list
为类型ARRAY[INT]
,然后有这样的子句WHERE 1 IN UNNEST(integer_event_list)
。我如何实现这一目标?
解决方案
以下是 BigQuery 标准 SQL
SELECT campaign, event_list
FROM `adobe_analytics.raw_data_20200*`
WHERE campaign IS NOT NULL
AND 1 IN (SELECT CAST(e AS INT64) FROM UNNEST(SPLIT(event_list,",")) e)
推荐阅读
- c# - 查询 Lucene 特殊字符后跟一个数字
- marklogic - 如何运行结构化查询
- git - git fetch 到不同的文件
- r - 是否有一个 R 函数可以找到任意模型的参数?
- jenkins - Jenkins Email-Ext 插件不再附加文件
- reactjs - 如何在 ag-grid-react 中禁用或删除输入搜索过滤器?
- facebook-graph-api - 在 Graph Facebook API 中,如何在给定用户电子邮件的情况下获取用户 ID?
- python - 给定转换矩阵,有效地将转换应用于状态矩阵
- ravendb - 如何在 Ravendb 中更新数组中的值?我需要使用查询
- macos - 没有键盘快捷键的 NSMenuItem 替代项