Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 将一些列合并为结构的数组到现有数组_Google Bigquery - Fatal编程技术网

Google bigquery 将一些列合并为结构的数组到现有数组

Google bigquery 将一些列合并为结构的数组到现有数组,google-bigquery,Google Bigquery,我有这个模式 我想得到一个结构数组,它将(功能,数值)与分类值的结构数组合并。请注意,category也可以是空字符串,我们希望跳过它 我设法这样做,但我正在寻找另一种较短的方法: select centroid_id,array_agg(struct(name,value) order by centroid_id) as cluster from ( select centroid_id,concat(feature,'_',category) as name,value FRO

我有这个模式

我想得到一个结构数组,它将
(功能,数值)
分类值的结构数组合并。请注意,category也可以是空字符串,我们希望跳过它

我设法这样做,但我正在寻找另一种较短的方法:

select centroid_id,array_agg(struct(name,value) order by centroid_id) as cluster from (
select centroid_id,concat(feature,'_',category) as name,value 
    FROM
    ML.CENTROIDS(MODEL `modelv1`), unnest(categorical_value)
    where length(category)>0
union all
select centroid_id,feature as name,numerical_value as value
FROM
    ML.CENTROIDS(MODEL `modelv1`)
    where numerical_value is not null
) 
group by centroid_id
order by centroid_id

#standardSQL
SELECT centroid_id, 
  (
    SELECT ARRAY_AGG(STRUCT(name,value)) FROM (
      SELECT CONCAT(feature,'_',category) AS name,value FROM UNNEST(categorical_value)
      WHERE LENGTH(category)>0
      UNION ALL
      SELECT feature, numerical_value
    ) 
    WHERE value IS NOT NULL
  ) AS cluster
FROM
    ML.CENTROIDS(MODEL `modelv1`)   
#standardSQL
SELECT centroid_id, 
  ARRAY(
    SELECT AS STRUCT name,value FROM (
      SELECT CONCAT(feature,'_',category) AS name,value FROM UNNEST(categorical_value)
      WHERE LENGTH(category)>0
      UNION ALL
      SELECT feature, numerical_value
    ) 
    WHERE value IS NOT NULL
  ) AS cluster
FROM
    ML.CENTROIDS(MODEL `modelv1`)