Contamos con la contestación a esta inconveniente, al menos eso creemos. Si presentas dudas puedes dejarlo en el apartado de comentarios y sin dudarlo te ayudaremos
Solución:
actualización 2020: fhoffa.x.pivot()
- https://towardsdatascience.com/easy-pivot-in-bigquery-one-step-5a1f13c6c710
Use sentencias condicionales para organizar los resultados de una consulta en filas y columnas. En el siguiente ejemplo, los resultados de una búsqueda de la mayoría de los artículos revisados de Wikipedia que comienzan con el valor ‘Google’ se organizan en columnas donde se muestran los recuentos de revisiones si cumplen varios criterios.
SELECT
page_title,
/* Populate these columns as True or False, depending on the condition */
IF(page_title CONTAINS 'search', INTEGER(total), 0) AS search,
IF(page_title CONTAINS 'Earth' OR page_title CONTAINS 'Maps', INTEGER(total), 0) AS geo,
FROM
/* Subselect to return top revised Wikipedia articles containing 'Google'
* followed by additional text.
*/
(SELECT
TOP(title, 5) as page_title,
COUNT(*) as total
FROM
[publicdata:samples.wikipedia]
WHERE
REGEXP_MATCH (title, r'^Google.+') AND wp_namespace = 0
);
Resultado:
+---------------+--------+------+
| page_title | search | geo |
+---------------+--------+------+
| Google search | 4261 | 0 |
| Google Earth | 0 | 3874 |
| Google Chrome | 0 | 0 |
| Google Maps | 0 | 2617 |
| Google bomb | 0 | 0 |
+---------------+--------+------+
Un ejemplo similar, sin usar una subconsulta:
SELECT SensorType, DATE(DTimestamp), AVG(data) avg,
FROM [data-sensing-lab:io_sensor_data.moscone_io13]
WHERE DATE(DTimestamp) IN ('2013-05-16', '2013-05-17')
GROUP BY 1, 2
ORDER BY 2, 3 DESC;
Genera una tabla de 3 columnas: tipo de sensor, fecha y datos promedio. Para “pivotar” y tener las fechas como columnas:
SELECT
SensorType,
AVG(IF(DATE(DTimestamp) = '2013-05-16', data, null)) d16,
AVG(IF(DATE(DTimestamp) = '2013-05-17', data, null)) d17
FROM [data-sensing-lab:io_sensor_data.moscone_io13]
GROUP BY 1
ORDER BY 2 DESC;
Reseñas y puntuaciones del tutorial
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)