【发布时间】:2021-03-05 00:16:25
【问题描述】:
我对 Google BigQuery 还很陌生,而且肯定在苦苦挣扎。
我的表格有以下内容:
+----------+----------------------------------------+
| order_id | line_items |
+----------+----------------------------------------+
| 123 | id:1|qy:1|sum:1.00;id:2|qy:6|sum:4.50; |
+----------+----------------------------------------+
| 456 | id:1|qy:3|sum:3.00;id:3|qy:4|sum:3.20; |
+----------+----------------------------------------+
我需要看起来像这样:
+----------+----+----+------+
| order_id | id | qy | sum |
+----------+----+----+------+
| 123 | 1 | 1 | 1.00 |
| 123 | 2 | 6 | 4.50 |
| 456 | 1 | 3 | 3.00 |
| 456 | 3 | 4 | 3.20 |
+----------+----+----+------+
我在 line_items 中的键值对的数量是任意的(比这 3 个要多得多,但我需要提取这三个)。
我能够使以下 UNNEST 和 SPLIT 查询正常工作,但不幸的是我仍然有这些键值对...
这个
SELECT
order_id,
line_items
FROM
`myTable`,
UNNEST(SPLIT(line_items,"|")) line_items
带我到这里:
+----------+------------+
| order_id | line_items |
+----------+------------+
| 123 | id:1 |
| 123 | qy:1 |
| 123 | sum:1.00 |
| 123 | id:2 |
| 123 | qy:6 |
| 123 | sum:4.50; |
| 456 | id:1 |
| 456 | qy:3 |
| 456 | sum:3.00 |
| 456 | id:3 |
| 456 | qy:4 |
| 456 | sum:3.20 |
+----------+------------+
所以我仍然不知道如何将这些键提取到列标题和值到列内容。
如果有人指出我正确的方向,我将不胜感激。
非常感谢!
【问题讨论】:
标签: google-bigquery