String byte to String - 大查询

时间:2018-01-29 19:07:59

标签: google-analytics google-bigquery

我有以下查询,它会生成添加了\"的数据。不确定是否是字符串字节导致此问题,因为string_agg生成字符串字节作为输出。

#standardSQL
SELECT
  visitid,
  fullVisitorId,
  hits.hitNumber,
  TO_JSON_STRING(ARRAY(
    SELECT
      AS STRUCT productSKU,
      ARRAY(SELECT STRING_AGG(CONCAT('{"',CAST(index AS STRING), '":', '"', IFNULL(value,''), '"', '}'), ',')  FROM   UNNEST(customDimensions))  as productCustDimension
    FROM
      UNNEST(hits.product) p)) AS product
FROM
  table_a
LEFT JOIN
  UNNEST(hits) AS hits
  LIMIT 10 

以下是它产生的输出。在产品列中,productCustDimension值是我正在使用的值,添加了"\个字符。

enter image description here

我找到了一种方法来摆脱我提到的使用替换功能的额外字符,但它变得太脏了。我在寻找是否有更好的方法。我想要产品列如下

enter image description here

1 个答案:

答案 0 :(得分:1)

问题在于"在TO_JSON_STRING中转义的字符。尝试运行查询,如下所示:

...
ARRAY(SELECT STRING_AGG(CONCAT('{',CAST(index AS STRING), ':', '', IFNULL(value,''), '', '}'), ',')  FROM   UNNEST(customDimensions))  as productCustDimension
...