Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 新标准SQL中的BigQuery扁平化子句等价_Google Bigquery - Fatal编程技术网

Google bigquery 新标准SQL中的BigQuery扁平化子句等价

Google bigquery 新标准SQL中的BigQuery扁平化子句等价,google-bigquery,Google Bigquery,我正在尝试使用BQ支持的新标准SQL在BigQuery中运行查询。目前我的任务是尝试使用标准SQL运行以下查询BQ语法: SELECT u0, u1 FROM (SELECT MIN(u) as u0, NEST(u) as u1 FROM (FLATTEN((SELECT key, SPLIT(u2,',') as u FROM [dataset.table]),u)) GROUP EACH BY key HAVING u

我正在尝试使用BQ支持的新标准SQL在BigQuery中运行查询。目前我的任务是尝试使用标准SQL运行以下查询BQ语法:

SELECT
    u0, u1
FROM
    (SELECT
        MIN(u) as u0, NEST(u) as u1
    FROM
        (FLATTEN((SELECT key, SPLIT(u2,',') as u FROM [dataset.table]),u))
    GROUP EACH BY key
    HAVING u0 <> u1)
GROUP EACH BY u0, u1
我对展平操作符有很多问题。 到目前为止,我所知道的,但它并不完全有效的是:

SELECT
  u0, u1
FROM
  (SELECT
    (SELECT MIN(uids) FROM UNNEST(u2_arr) u2) u0,
    u2_arr
  FROM
    (SELECT SPLIT(uids, ',') as u2_arr FROM `datase.table`)),
  UNNEST(u2_arr) u1
WHERE u0 <> u1
GROUP BY u0, u1
如何使第二个查询与第一个查询相似,有什么建议吗

提前谢谢你!
G

假设您的表如下所示,它是从您的问题中的代码派生出来的

key u2   
1   2,6,3,1,4,5  
2   21,6,32,11,4,5   
下面的BigQuery标准SQL返回与原始遗留SQL完全相同的结果

SELECT 
  u0, u1
FROM (
  SELECT
    MIN(u) AS u0, ARRAY_AGG(u) AS u1
  FROM
    (SELECT key, u FROM `datase.table`, UNNEST(SPLIT(u2, ',')) AS u)
  GROUP BY key
), UNNEST(u1) AS u1
WHERE u0 <> u1  
这可能不是从传统sql到标准sql的最佳转换,但我不知道您想要实现什么,我希望代码尽可能接近您的原始代码

从另一方面来说,我不知道你所说的是什么意思,我认为你的版本不能完全正常工作