2016-04-01 17 views
0

我有一個SQL查詢,當我將結果寫入未設置'allow large results'的表中時,將寫入228行。228行結果查詢作業寫入表時給出0行當允許較大的結果時爲真

但是,當我設置允許較大的結果時,目標表將包含0行。這兩種嘗試都使用寫配置WRITE_TRUNCATE。

我看到這兩個使用API​​和BigQuery控制檯。

工作沒有讓-大成果的工作:

eagTEiR0wSMK6b5WLSL04vB9RfTUb8bhvEi1YFWjuhfaF_W0zEeLogxUYwOrhGyOheS_CyyaB1dUeafGPdyR592xMcbeEmpJ85_CO29PSbBAnmEBGHJVHWjpH5DvGyVCEjarfJ5XUQ9UmVT_FSHmkcEZktbfln9E_E1jobM65IuQv2sP4_r7eqK60aPaqxD7taEc1bpM2kS6GAtkxqFsUUOv_JXQgTn3ebCodHFKsdquhy3e1mfbu4QhqnoO5QCi

非工作允許大型-結果工作:

G40HW4Z5zGTgL1NSCBBy380kY7Gu7WOU7s_zB9F8Kdrtao2gbzRLptWSSi76MC2gHCHPG0srssaGejfCIN4j1upjyh9vQnA3kPmuJcgm5ZgdYd3YwsmGzvcBXiPy9bY0x0GRhJXimHqhKiYbKz7fa3LljOb4kxNvB8wPazqeYj3xAX wbV8G2Sl3L6gmutvvYPalhd1CCtUbLfiw520_I4zKDgn7LYosyFjA0h9TwR8GQ80Scd5n8yKAsIEou7XDG

查詢:

SELECT t1.email, MIN(t1.min_created_time), GROUP_CONCAT(t1.id) 
FROM (
    SELECT email, MIN(created) as min_created_time, id 
    FROM TABLE_QUERY([xxxxx], 'table_id in  ("yyyyyy_201601", "yyyyyy_201602",  "yyyyyy _201603", "yyyyyy_201604")') 
WHERE created >= "2016-01-11 00:00:00" AND created < "2016-04-01 00:00:00" AND id != "null" AND name LIKE "%trike%" 
    GROUP BY email, id 
    ) t1 

GROUP EACH BY t1.email  
IGNORE CASE 

還要注意,一個簡單的SQL適用於兩種情況,如:

select email from xxxx group by email limit 100 

回答

1

這看起來像由於忽略大小寫的問題。此修復程序正在進行中,但在此期間,你可以換字符串比較具有較低的()調用,即

LOWER(id) != "null" 
LOWER(name) LIKE "%trike%" 

+0

謝謝,你可能指的是http://stackoverflow.com/questions/ 30441371 /忽略情況查詢,問題節能到一表 - 和 - 使用 - 讓 - 大型的結果?相關的Google問題可以追溯到2015/1。這個問題是否有預期的修復日期?在我的情況下,沒有錯誤產生。 – Marcel

+0

另外,在性能和計費方面,所有字符串比較與IGNORE CASE的LOWER()的使用是否產生成本? – Marcel

+0

性能或計費沒有區別,IGNORE CASE只是一個方便,雖然它很脆弱,因爲它不允許查詢組合。你提到的另一個問題是相關的,但不一樣。我預計修復將在幾周內生效。 –