Saltar al contenido

Use google bigquery para construir un gráfico de histograma

Solución:

También puede utilizar el quantiles operador de agregación para ver rápidamente la distribución de edades.

SELECT
  quantiles(age, 10)
FROM mytable

Cada fila de esta consulta correspondería a la edad en ese punto en la lista de edades. El primer resultado es la edad de 1/10 del camino a través de la lista ordenada de edades, el segundo es la edad de 2/10 a, 3/10, etc.

Vea la actualización de 2019, con #standardSQL –Fh


La idea de la subconsulta funciona, al igual que “CASE WHEN” y luego hacer un grupo de la siguiente manera:

SELECT SUM(field1), bucket 
FROM (
    SELECT field1, CASE WHEN age >=  0 AND age < 10 THEN 1
                        WHEN age >= 10 AND age < 20 THEN 2
                        WHEN age >= 20 AND age < 30 THEN 3
                        ...
                        ELSE -1 END as bucket
    FROM table1) 
GROUP BY bucket

Alternativamente, si los depósitos son regulares, puede dividir y convertir a un número entero:

SELECT SUM(field1), bucket 
FROM (
    SELECT field1, INTEGER(age / 10) as bucket FROM table1)
GROUP BY bucket

Con #standardSQL y un auxiliar stats consulta, podemos definir el rango en el que debe mirar el histograma.

Aquí para el tiempo para volar entre SFO y JFK – con 10 cubos:

WITH data AS ( 
    SELECT *, ActualElapsedTime datapoint
    FROM `fh-bigquery.flights.ontime_201903`
    WHERE FlightDate_year = "2018-01-01" 
    AND Origin = 'SFO' AND Dest="JFK"
)
, stats AS (
  SELECT min+step*i min, min+step*(i+1)max
  FROM (
    SELECT max-min diff, min, max, (max-min)/10 step, GENERATE_ARRAY(0, 10, 1) i
    FROM (
      SELECT MIN(datapoint) min, MAX(datapoint) max
      FROM data
    )
  ), UNNEST(i) i
)

SELECT COUNT(*) count, (min+max)/2 avg
FROM data 
JOIN stats
ON data.datapoint >= stats.min AND data.datapoint<stats.max
GROUP BY avg
ORDER BY avg

Si necesita números redondos, consulte: https://stackoverflow.com/a/60159876/132438

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *