BigQuery SPLIT()和按结果分组

Gra*_*ley 4 google-bigquery

使用SPLIT()&NTH(),我将分割一个字符串值,并将第二个子字符串作为结果.然后我想对结果进行分组.但是,当我将SPLIT()与GROUP BY结合使用时,它会不断给出错误:

Error: (L1:55): Cannot group by an aggregate
Run Code Online (Sandbox Code Playgroud)

结果是一个字符串,为什么不能对它进行分组?

例如,这可以工作并返回正确的字符串:

SELECT NTH(2,SPLIT('FIRST-SECOND','-')) as second_part FROM [FOO.bar] limit 10
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是然后对结果进行分组不起作用:

SELECT NTH(2,SPLIT('FIRST-SECOND','-')) as second_part FROM [FOO.bar] GROUP BY second_part limit 10
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Pat*_*ice 5

我最好的猜测是你可以通过使用子查询获得相同的结果.就像是 :

SELECT * FROM (Select NTH(2,SPLIT('FIRST-SECOND','-')) as second_part FROM [FOO.bar] limit 10) GROUP BY second_part 
Run Code Online (Sandbox Code Playgroud)

我想,系统在内部以聚合方式返回Nth