2017-10-06 3 views
0

Lorsque je mets une clause LIMIT dans un ARRAY_AGG, j'obtiens toujours beaucoup d'éléments dans le tableau. Le docs suggère que cela devrait fonctionner.LIMIT dans ARRAY_AGG dans BigQuery

Est-ce que je fais quelque chose de mal?

SELECT 
    x, 
    ARRAY_AGG((
    SELECT 
     AS STRUCT y 
    LIMIT 
     1)) y 
FROM 
    `a`, 
    UNNEST(b) b 
WHERE 
    x = 'abc' 
GROUP BY 
    1 
LIMIT 1 

... produit un résultat avec une rangée de STRING un ARRAY avec 50 articles, quand je me attendais à seulement 1 point.

Répondre

0

Le problème était le placement de la clause LIMIT. Il s'agissait de l'instruction SELECT, plutôt que de la fonction ARRAY_AGG. Ceci l'a corrigé:

SELECT 
    x, 
    ARRAY_AGG((
    SELECT 
     AS STRUCT y 
    ) LIMIT 1) y 
FROM 
    `a`, 
    UNNEST(b) b 
WHERE 
    x = 'abc' 
GROUP BY 
    1 
LIMIT 1