【发布时间】:2022-01-06 00:44:12
【问题描述】:
我想在 SQL/BigQuery 中的先前匹配期间输出与索引匹配的数组内的元素
目标是将 MATCH_ID 与 MATCH_HOME 或 MATCH_AWAY 匹配,然后从 MATCH_HOME_DATE(如果匹配 MATCH_HOME 中的元素)或 MATCH_AWAY_DATE(如果匹配 MATCH_AWAY 中的元素)输出日期(作为 MATCH_DATE)。匹配日期应与 MATCH_HOME 或 MATCH_DATE 中匹配的索引具有相同的索引
例如,我有这 5 个字段(及其数据类型)。
| MATCH_ID (STRING) | MATCH_HOME (STRING) | MATCH_AWAY (STRING) | MATCH_HOME_DATE (ARRAY(STRING)) | MATCH_AWAY_DATE (ARRAY(STRING)) |
|---|---|---|---|---|
| 19.56V.25 | 19.56V.25, 19.52X.26 | 19.48W.27, 19.35R.28 | [2021-10-30,2021-10-31] | [2021-11-05,2021-11-06] |
| 19.24C.17 | 19.25S.19, 19.15M.17 | 19.21A.19, 19.24C.17 | [2021-11-27,2021-11-28] | [2021-12-11,2021-12-12] |
输出 MATCH_DATE 应该是:
|MATCH_DATE |
|:---- |
| 2021-10-30 |
| 2021-12-12 |
因为第 1 行匹配 MATCH_HOME 的第一个元素,第 2 行匹配 MATCH_AWAY 的第二个元素。
【问题讨论】:
-
是不是和你问的这个stackoverflow.com/questions/70105670/…类似的问题?
-
我认为这是完全相同的问题和解决方案,前提是这里可以完美运行!你能解释一下这里有什么区别吗!
-
嗨!主要区别在于我在第一篇文章中提供的数据过于简单,没有强调我正在处理的真实数据类型。我在处理 STRING 和 ARRAY(STRING) 数据集时遇到了困难,所以我在这个问题中指出了这一点。
标签: sql arrays indexing google-bigquery match