2013-07-11 14 views
8

İç içe geçmiş birden çok tekrarlanan alan içeren bir şema var.BigQuery'de birden çok yinelenen alan sorgulama

ben çapraz ürünü sorgulamak çalışıyorum ancak bir hata alıyorum: "tekrarlanan alanların çapraz ürünü sorgulamak Can not ..."

Ben sadece 2 tekrarlanan alanları sorgulamak, ben birini dümdüz onların Yine de, tekrarlanan 2 alanın daha fazlasını sorgulamakla ilgileniyorum ve FLATTEN söz diziminin bunu nasıl desteklediğini anlayamıyorum. Örneğin

, tablo yapısı ki: a1, Kayıt (tekrar): a1.b1, tam sayı a2 Kayıt (tekrar): a2.b1, tam sayı a3, kayıt (tekrar): a3.b1 , tamsayı

ben sorgulamak istiyorum

: Sen FLATTEN içinde yuvalanmış Alt Seç'i kullanabilirsiniz sekmesi

cevap

13

den (*) seçeneğini . Seçme ifadesinin etrafında ekstra bir paren gerektirir. (sözdizimi ne yazık ki çirkin bir şeydir). Örneğin. Sen iç seçme içindeki belirli bir şey yapmanıza gerek yoksa

SELECT 
    ... 
FROM (
    FLATTEN((
     SELECT 
     ... 
     FROM (
      FLATTEN((
      SELECT 
       ... 
      FROM 
       table), 
      f1) 
     ) 
     ), 
     f2) 
    ) 
) 
+0

Works kullanabilirsiniz! En iç seçiminde sadece bir kez seçmek için alanları belirtmek ve diğer tüm iç içe seçimlerde * yazma seçimlerini belirtmek istiyorum. Ancak, siparişin alandan seçim alanında görünmesini gerektirdiğinden, siparişe göre bir sipariş belirtemiyorum. – Lior

7

, sadece bir cazibe gibi

(FLATTEN(FLATTEN(table, a1), a2))

+0

Bu da iyi çalışıyor. –

İlgili konular