我有一个包含多个数组的表,以及一个像键一样的列:
问题是如何取消嵌套此结构,以便每一行也获得rowkey值?
例如:
域,事件,...引荐来源网址也应该具有相同的行键吗?
基本上尝试在整个表上使用嵌套。
SELECT
*
FROM
UNNEST(`table.bigtable_analytics.frontend`)
LIMIT
1000
但是遇到有关表名的问题:
无法识别的名称:table.bigtable_analytics.frontend
,位于[4:10]
答案 0 :(得分:2)
目前尚不清楚表的确切模式,因此下面的示例(对于BigQuery Standard SQL)仅使用简化的模式来介绍完成要求的方法:each row also gets the rowkey value
简化的伪数据为:
Row rowkey column.name column.value
1 key1 domain aaa.com
event pageload
hash 12345
2 key2 domain2 aaa2.com
event2 pageload2
hash2 123456789
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'key1' rowkey, [STRUCT<name STRING, value STRING>('domain', 'aaa.com'), STRUCT('event', 'pageload'), STRUCT('hash', '12345')] column UNION ALL
SELECT 'key2', [STRUCT<name STRING, value STRING>('domain2', 'aaa2.com'), STRUCT('event2', 'pageload2'), STRUCT('hash2', '123456789')]
)
SELECT rowkey, x.*
FROM `project.dataset.table` t, t.column x
结果为
Row rowkey name value
1 key1 domain aaa.com
2 key1 event pageload
3 key1 hash 12345
4 key2 domain2 aaa2.com
5 key2 event2 pageload2
6 key2 hash2 123456789