timestamp - español - ¿Cómo extraer días únicos entre dos marcas de tiempo en BigQuery?
bigquery tutorial español (2)
@ Pentium10 es la forma correcta y clásica de llenar rangos. Solo por diversión, quería dar una alternativa que no dependa de ninguna tabla adicional. Esta solución es así:
- Utilice RPAD para generar una cadena de longitud requerida, es decir, el número de días en el intervalo
- Use SPLIT para convertirlo a campo repetido con número de elementos igual al número de días en el intervalo
- Use POSITION para obtener el índice secuencial de cada elemento en el campo repetido
Aquí está la consulta completa:
select date(date_add(day, i, "DAY")) day
from (select ''2015-01-01'' day) a
cross join
(select
position(
split(
rpad('''', datediff(''2015-01-15'',''2015-01-01'')*2, ''a,''))) i
from (select NULL)) b;
para dos marcas de tiempo diferentes, digamos marca de tiempo (''2015-02-01'') y marca de tiempo (''2015-02-12''), quiero una columna con todas las fechas intermedias. Me gusta esto (12 Filas) 2015-02-01 2015-02-02. . . 2015-02-12
Puede hacer eso con una unión cruzada en un conjunto de datos público ( fh-bigquery:geocode.numbers_65536
) donde tiene números hasta: 65536
SELECT date(DATE_ADD(DAY, i, "DAY")) DAY
FROM
(SELECT ''2015-01-01'' AS DAY) a CROSS
JOIN
(SELECT i
FROM [fh-bigquery:geocode.numbers_65536]
WHERE i<=abs(DATEDIFF(''2015-01-01'',''2015-01-15''))) b
ORDER BY DAY ASC
esta salidas:
+-----+------------+---+
| Row | day | |
+-----+------------+---+
| 1 | 2015-01-01 | |
| 2 | 2015-01-02 | |
| 3 | 2015-01-03 | |
| 4 | 2015-01-04 | |
| 5 | 2015-01-05 | |
| 6 | 2015-01-06 | |
| 7 | 2015-01-07 | |
| 8 | 2015-01-08 | |
| 9 | 2015-01-09 | |
| 10 | 2015-01-10 | |
| 11 | 2015-01-11 | |
| 12 | 2015-01-12 | |
| 13 | 2015-01-13 | |
| 14 | 2015-01-14 | |
| 15 | 2015-01-15 | |
+-----+------------+---+
Puede agregar estos datos a su vista en la IU de BigQuery agregando el proyecto fh-bigquery
usando el menú del proyecto (el menú desplegable al lado del nombre del proyecto, Cambiar al proyecto ➪ Mostrar proyecto). De forma alternativa, puede navegar al enlace de la IU de BigQuery https://bigquery.cloud.google.com/project/fh-bigquery Después de agregar el proyecto, aparece el conjunto de datos de muestra (fh-bigquery) en el panel de navegación.