匹配 SQL / BigQuery 中相同索引的数组元素
Match array elements of the same index in SQL / BigQuery
我想在 SQL/BigQuery
中的先前匹配期间输出与索引匹配的数组中的元素
比如我有这5个字段。 Match_Home_Date 和 Match_Away_date 是 Array(String) 格式。
Match_ID
Match_Home
Match_Away
Match_Home_Date
Match_Away_Date
121
101, 102
103, 121
[01-02-2021, 01-05-2021]
[01-07-2021, 01-09-2021]
131
131, 140
117, 115
[02-02-2021, 02-15-2021]
[02-20-2021, 02-25-2021]
我想输出一个“最终日期”字段,其中当 Match_ID 与 Match_Home 或 Match_Away 匹配时,它将输出相应的 Match_Home_Date 或Match_Away_同索引日期
输出应该是:
Final Date
01-09-2021
02-02-2021
考虑以下方法
select Match_ID,
(Match_Home_Date || Match_Away_Date)[offset(
( select offset
from unnest(split(Match_Home) || split(Match_Away)) id with offset
where trim(id) = '' || Match_ID
))] as Final_Date
from your_table
如果应用于您问题中的示例数据 - 输出为
你可以用下面的cte来测试上面的
with your_table as (
select 121 Match_ID, '101, 102' Match_Home, '103, 121' Match_Away, ['01-02-2021', '01-05-2021'] Match_Home_Date, ['01-07-2021', '01-09-2021'] Match_Away_Date union all
select 131, '131, 140', '117, 115', ['02-02-2021', '02-15-2021'], ['02-20-2021', '02-25-2021']
)
我想在 SQL/BigQuery
中的先前匹配期间输出与索引匹配的数组中的元素比如我有这5个字段。 Match_Home_Date 和 Match_Away_date 是 Array(String) 格式。
Match_ID | Match_Home | Match_Away | Match_Home_Date | Match_Away_Date |
---|---|---|---|---|
121 | 101, 102 | 103, 121 | [01-02-2021, 01-05-2021] | [01-07-2021, 01-09-2021] |
131 | 131, 140 | 117, 115 | [02-02-2021, 02-15-2021] | [02-20-2021, 02-25-2021] |
我想输出一个“最终日期”字段,其中当 Match_ID 与 Match_Home 或 Match_Away 匹配时,它将输出相应的 Match_Home_Date 或Match_Away_同索引日期
输出应该是:
Final Date
01-09-2021
02-02-2021
考虑以下方法
select Match_ID,
(Match_Home_Date || Match_Away_Date)[offset(
( select offset
from unnest(split(Match_Home) || split(Match_Away)) id with offset
where trim(id) = '' || Match_ID
))] as Final_Date
from your_table
如果应用于您问题中的示例数据 - 输出为
你可以用下面的cte来测试上面的
with your_table as (
select 121 Match_ID, '101, 102' Match_Home, '103, 121' Match_Away, ['01-02-2021', '01-05-2021'] Match_Home_Date, ['01-07-2021', '01-09-2021'] Match_Away_Date union all
select 131, '131, 140', '117, 115', ['02-02-2021', '02-15-2021'], ['02-20-2021', '02-25-2021']
)