2017-05-04 2 views
1

Avec un événement personnalisé dans Firebase exporté vers BigQuery, plusieurs paramètres de valeur-clé peuvent exister en son sein. Je n'arrive pas à comprendre comment en sélectionner plus que l'un d'entre eux en utilisant "SQL standard".BigQuery sélectionnez plusieurs valeurs de clé

How would I project both msg and succes values (string_value and int_value) into one record

+0

Je comprends que les questions doivent être minimes, complètes et vérifiables pour pouvoir ajouter de la valeur à Stackoverflow et à ses utilisateurs. Cependant, les questions existantes autour du sujet (que j'ai cherché naturellement d'abord) étaient trop grandes et complexes. Tout ce que je voulais vraiment savoir, c'est comment extraire plusieurs paramètres de valeur-clé dans une dimension BigQuery. La réponse d'Elliott Brossard a fonctionné à merveille pour moi, tout comme d'autres. –

Répondre

2

Disons que vous vouliez choisir le string_value qui correspond à firebase_event_origin et le int_value associé à firebase_screen_id pour tous control_reading événements. Vous pouvez exprimer la requête comme suit:

#standardSQL 
SELECT 
    (SELECT param.value.string_value 
    FROM UNNEST(event_dim.params) AS param 
    WHERE param.key = 'firebase_event_origin') AS firebase_event_origin, 
    (SELECT param.value.int_value 
    FROM UNNEST(event_dim.params) AS param 
    WHERE param.key = 'firebase_screen_id') AS firebase_screen_id 
FROM `your_dataset.your_table_*` 
CROSS JOIN UNNEST(event_dim) AS event_dim 
WHERE _TABLE_SUFFIX BETWEEN '20170501' AND '20170503' AND 
    event_dim.name = 'control_reading'; 
+0

Il est donc essentiel d'utiliser CROSS JOIN UNNEST sur la dimension avec sous-requêtes. Fonctionne comme un charme, merci! –