2016-09-19 45 views
1

我想選擇在重複字段中具有更多感謝k值的行。 (考慮爲有3個以上的電子郵件地址,例如,選擇用戶)在BigQuery中重複字段中的值計數

在標準SQL我知道我可以使用

SELECT * FROM dataset.users 
WHERE array_length(email_address) > 3 

但什麼是BigQuery中遺留的SQL做到這一點的呢?

回答

5

不需要子查詢;你應該能夠OMIT RECORD IF直接進行過濾:

SELECT * 
FROM dataset.users 
OMIT RECORD IF COUNT(email_address) <= 3; 

你介意評論你爲什麼要使用傳統的SQL有關係嗎?如果您遇到標準SQL的問題,我想了解它是什麼以便我們可以修復它。謝謝!

+2

不,我沒有遇到任何標準SQL的問題,這只是因爲這是我係統中已經寫入傳統SQL的查詢的一部分,並且將整個查詢轉換爲標準SQL並不是完全直截了當。 –

+0

謝謝!我很欣賞這些反饋。 –

0

計數值在重複的領域BigQuery中

的BigQuery傳統的SQL

SELECT COUNT(email_address) WITHIN RECORD AS address_count 
FROM [dataset.users] 

如果你想然後再以數輸出行 - 您可以使用下面

SELECT COUNT(1) AS rows_count 
FROM (
    SELECT COUNT(email_address) WITHIN RECORD AS address_count 
    FROM [dataset.users] 
) 
WHERE address_count> 3