BigQuery SQL 中未嵌套数组的字符串函数
Posted
技术标签:
【中文标题】BigQuery SQL 中未嵌套数组的字符串函数【英文标题】:String Functions on Unnested Arrays in BigQuery SQL 【发布时间】:2021-12-29 15:13:42 【问题描述】:我正在尝试查找其中一个数组项包含值的所有行实例,忽略 Google BigQuery 中的大小写。
我能做到:
SELECT
COUNT(*)
FROM
`my_bq_project.my_bq_dataset.my_table`
WHERE
(
'AAA' IN UNNEST(array_1.array_2.some_text)
)
这适用于在array_1.array_2.some_text
中查找'AAA'
。但是我也想找到'aaa'
、'Aaa'
等等。
但这不起作用:
SELECT
COUNT(*)
FROM
`my_bq_project.my_bq_dataset.my_table`
WHERE
(
'AAA' IN UNNEST(LOWER(array_1.array_2.some_text))
)
我想避免重复 where 语句(为'AaA'
、'aaa'
等添加 where 条件)。
有没有办法在 BigQuery SQL 的数组中的结构字段上应用 LOWER
之类的字符串函数?
谢谢
【问题讨论】:
【参考方案1】:试试下面的方法
SELECT
COUNT(*)
FROM
`my_bq_project.my_bq_dataset.my_table`
WHERE LOWER('AAA') IN (
SELECT LOWER(some_text)
FROM UNNEST(array_1) a, UNNEST(a.array_2)
)
【讨论】:
很高兴它对你有用。然后考虑投票赞成答案:o)以上是关于BigQuery SQL 中未嵌套数组的字符串函数的主要内容,如果未能解决你的问题,请参考以下文章
处理 BigQuery 中未嵌套记录导致的重复行的最佳做法?
Athena 在另一个 json 结构数组中未嵌套 json 字符串数组