将嵌套的自定义维度列数据转置为行 Bigquery
Transpose nested customDimension column data into rows Bigquery
我的 BigQuery table 如下所示
Fullvisitorid CustomDimension.Index CustomDimension.value
123 1 red
2 blue
3 green
456 1 red
3 orange
4 black
我希望我的最终输出如下所示
Fullvisitorid Color1 Color2
123 red green
456 red orange
下面是我编写的查询,但出现错误 "FUNCTION NOT FOUND: FIRST"
SELECT
fullvisitorid,
FIRST(IF(customDimensions.index=1, customDimensions.value, NULL)) color1,
FIRST(IF(customDimensions.index=3, customDimensions.value, NULL)) color2
FROM `my_table`
cross join
unnest(customDimensions) customDimensions,
unnest(hits) hits
where customDimensions.index in (1,3)
group by fullvisitorid
我发现了一个帮助我编写查询的类似问题:
[
我不确定为什么我的查询会出错。
如果有任何帮助,我将不胜感激!
谢谢
您现在正在使用#standardSQL - 很好。
而不是 FIRST()
使用 ANY_VALUE()
.
我相应地更新了我在参考问题中的答案:
您还可以创建一个用户定义函数并在需要自定义维度时随时调用它:
SELECT
fullvisitorid,
PATH.CUSTOM_DIMENSION_BY_INDEX(1, h.customDimensions) AS color1,
PATH.CUSTOM_DIMENSION_BY_INDEX(3, h.customDimensions) AS color2,
FROM `my_table`
cross join
unnest(customDimensions) customDimensions,
unnest(hits) hits
where customDimensions.index in (1,3)
group by fullvisitorid
其中 PATH.CUSTOM_DIMENSION_BY_INDEX(index, h.customDimensions) 是一个 UDF,格式为:
(SELECT x.value FROM UNNEST(arr) x WHERE indx=x.index)
您可以找到更多关于它的信息here。
我的 BigQuery table 如下所示
Fullvisitorid CustomDimension.Index CustomDimension.value
123 1 red
2 blue
3 green
456 1 red
3 orange
4 black
我希望我的最终输出如下所示
Fullvisitorid Color1 Color2
123 red green
456 red orange
下面是我编写的查询,但出现错误 "FUNCTION NOT FOUND: FIRST"
SELECT
fullvisitorid,
FIRST(IF(customDimensions.index=1, customDimensions.value, NULL)) color1,
FIRST(IF(customDimensions.index=3, customDimensions.value, NULL)) color2
FROM `my_table`
cross join
unnest(customDimensions) customDimensions,
unnest(hits) hits
where customDimensions.index in (1,3)
group by fullvisitorid
我发现了一个帮助我编写查询的类似问题:
[
我不确定为什么我的查询会出错。 如果有任何帮助,我将不胜感激!
谢谢
您现在正在使用#standardSQL - 很好。
而不是 FIRST()
使用 ANY_VALUE()
.
我相应地更新了我在参考问题中的答案:
您还可以创建一个用户定义函数并在需要自定义维度时随时调用它:
SELECT
fullvisitorid,
PATH.CUSTOM_DIMENSION_BY_INDEX(1, h.customDimensions) AS color1,
PATH.CUSTOM_DIMENSION_BY_INDEX(3, h.customDimensions) AS color2,
FROM `my_table`
cross join
unnest(customDimensions) customDimensions,
unnest(hits) hits
where customDimensions.index in (1,3)
group by fullvisitorid
其中 PATH.CUSTOM_DIMENSION_BY_INDEX(index, h.customDimensions) 是一个 UDF,格式为:
(SELECT x.value FROM UNNEST(arr) x WHERE indx=x.index)
您可以找到更多关于它的信息here。