2015-04-24 103 views
3

我運行下面的查詢和不斷收到錯誤消息:第N次(N,分割())BigQuery中

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

Error message:
Error: (L1:110): (L1:119): SELECT clause has mix of aggregations 'D' and
fields 'Web_Address_' without GROUP BY clause
Job ID: symmetric-aura-572:job_axsxEyfYpXbe2gpmlYzH6bKGdtI

我試圖用group by clause on field D和/或Web_address_,但仍然得到錯誤約group by

有誰知道這是爲什麼?之前我曾經用類似的查詢獲得過成功。

+0

對不起,有一個錯字。忘了''''。查詢是SELECT NTH(2,split(Web_Address_,'。'))+'。'+ NTH(3,split(Web_Address_,'。'))as D,Web_Address_ FROM [Domains.domain] limit 10 –

回答

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_)) 

附:如果您只是試圖切斷網址的第一部分,那麼使用RIGHT和INSTR功能會更容易。

+0

This works !非常感謝你!我想在字符串被'。'分割後接受字符串的第二部分和第三部分。我沒有經常在記錄中使用。會看看。 –

+0

工作就像一個魅力!謝謝! – Diego

0

你也可以考慮使用URL functions:主機,域名和頂級域名