2014-06-12 19 views
6

Bir tarih joker karakterine sahip tablolardan veri seçmek için google bigquery'yi kullanmaya çalışıyorum. TABLE_DATE_RANGE işlevini kullanabilmeyi isterdim, ancak büyük bir tarih aralığındaki sorgulamayı yapmam gerekiyor (> 1 yıl). Şu anda benim sorgu verilerinin yılın değerinde çalışır, ancak ben üzerinde bir şey ister:1 yıldan fazla süredir tablolarla TABLE_DATE_RANGE kullanma

#Fails 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-04'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

#Works 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-03'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

BigQuery'e bu sadece bir sınırlama var mı çok fazla gün:

Hata: TABLE_DATE_RANGE hatası ? Veya 1 yıldan büyük tarih aralıklarına sahip tablo joker karakterlerini kullanmanın bir yolu var mı?

cevap

5

TABLE_DATE_RANGE() ile ilgili sorunlar yaşadım. İşte tablolar, workspace.intervaldata20090303 adlandırılır vb .:

SELECT 
system_id, sample_date, e_pv_array 
FROM 
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304") 
WHERE 
system_id = 20006 
and e_pv_array is not null; 

Ben benzer bir senaryo (tarih tabloları bölümlenmiş) ve TABLE_QUERY kullanarak veri 2 yılı aşkın değerinde sorguları çalıştırmak mümkün duyuyorum varsayarak, olası bir çözüm var() hatasız.

İlgili konular