在bigquery中的Nth(n,split())

时间:2015-04-24 17:03:41

标签: google-bigquery

我正在运行以下查询并不断收到错误消息:

SELECT NTH(2,split(Web_Address_,'.')) +'.'+NTH(3,split(Web_Address_,'.')) as D , Web_Address_
FROM [Domains.domain 
limit 10
  

错误信息:
错误:(L1:110):( L1:119):SELECT子句有混合   没有GROUP BY的聚合'D'和
字段'Web_Address_'   条款
工作ID:   对称光环-572:job_axsxEyfYpXbe2gpmlYzH6bKGdtI

我尝试使用group by clause on field D和/或Web_address_,但仍然遇到有关group by的错误。

有谁知道为什么会这样?我以前用类似的查询取得了成功。

2 个答案:

答案 0 :(得分:2)

您可能希望在此使用WITHIN RECORD聚合,而不是GROUP BY

    select concat(p1, '.', p2), Web_Address_ FROM 
(SELECT 
  NTH(2,split(Web_Ad`enter code here`dress_,'.')) WITHIN RECORD p1,
  NTH(3,split(Web_Address_,'.')) WITHIN RECORD p2, Web_Address_ 
FROM (SELECT 'a.b.c' as Web_Address_))

P.S。如果您只是想切断网址的第一部分,那么使用RIGHT和INSTR函数会更容易。

答案 1 :(得分:0)

您还可以考虑使用URL functions:HOST,DOMAIN和TLD