📌Descomponiendo Arrays en BigQuery con UNNEST
La función UNNEST en BigQuery es clave cuando trabajamos con datos almacenados en arreglos. Nos permite transformar una lista en filas individuales, facilitando el análisis y la manipulación de datos. Veamos cómo funciona con ejemplos prácticos.
🚀 Ejemplo 1: Expandir etiquetas de productos
Imaginemos una tabla de productos con una columna etiquetas que almacena listas de características:
| id_producto | nombre | etiquetas |
| 1 | Producto A | [“rojo”, “grande”] |
| 2 | Producto B | [“azul”, “pequeño”, “nuevo”] |
Podemos descomponer las etiquetas con UNNEST:
SELECT id_producto, nombre, etiqueta
FROM productos
CROSS JOIN UNNEST(etiquetas) AS etiqueta;📌 Resultado:
Debo poner el resultado…
🏷️ Ejemplo 2: Expandir una lista de valores
Podemos aplicar UNNEST directamente sobre una lista:
SELECT items, customer_name
FROM UNNEST (['apple', 'pear', 'plum', 'mangoes']) AS items
CROSS JOIN (SELECT 'Rogger' AS customer_name);📌 Resultado:

📖 Ejemplo 3: Análisis de palabras en obras de Shakespeare
BigQuery proporciona conjuntos de datos públicos, como bigquery-public-data.samples.shakespeare. Veamos cómo extraer las palabras más frecuentes en la obra Othello:
SELECT *
FROM bigquery-public-data.samples.shakespeare
WHERE corpus = 'othello';Ahora creamos una tabla agregando palabras y su frecuencia:
CREATE TABLE Schema.top_words AS
SELECT corpus, ARRAY_AGG(STRUCT(word, word_count)) AS top_words
FROM bigquery-public-data.samples.shakespeare
GROUP BY corpus;Para expandir la lista de palabras:
SELECT corpus, tw.word, tw.word_count
FROM Schema.top_words t, UNNEST(top_words) tw
WHERE corpus = 'othello'
ORDER BY tw.word_count DESC;📌 Este query devuelve las palabras más usadas en la obra Othello, ordenadas por frecuencia.
✅ Conclusión
La función UNNEST es una herramienta poderosa en BigQuery cuando trabajamos con datos en formato de lista. Nos ayuda a transformar estructuras complejas en filas planas, facilitando análisis más eficientes y detallados. 🚀

¿Ya usaste UNNEST en tus consultas? ¡Comparte tu experiencia en los comentarios! 💬