En Ciencia de Datos los debo manejar de manera correcta y bien, para hacer diferentes tratamientos y manipulación de la información.

Usamos la Función GENERATE_SERIES que genera un rango de números, a diferencia de int4range o numrange, GENERATE_SERIES presenta los números como registros en una tabla, ósea como proyección y debemos usarlo en el FROM.

CLASE

Tiene tres parámetros la Función (’Inicio de serie’, ‘Final de serie’, ‘paso o el delta que voy a ocupar en este generador de series:’).

Podemos usar distintos tipos de Datos.

Siempre se detiene el Delta antes de pasar el límite que pusimos.

  1. Ejemplos de generate_series.
SELECT *
FROM generate_series(1,4);
SELECT *
FROM generate_series(4,4);
SELECT *
FROM generate_series(5,1);
SELECT *
FROM generate_series(3,4,-1);
SELECT *
FROM generate_series(5, 1, -2);
SELECT *
FROM generate_series(4,3,-1);
SELECT *
FROM generate_series(1.1,4,1.3);
  1. Si queremos usar los números generados por generate_series, debemos darle un ALIAS, no solo a la proyección que genera, sino al campo donde quedan los números.

Podemos generar SERIES DE TIEMPO.

SELECT current_date + s.a AS dates
FROM generate_series(0,14,7) AS s(a);

VI.png

  1. En el caso anterior nos confiamos del + que es una Función de postgre pero lo podemos hacer de otra forma:

Los : : significa que cambio el tipo de Dato.

SELECT *
FROM generate_series('2020-09-01 00:00:00'::timestamp,
										 '2020-09-04 12:00:00'::timestamp, 
										 '10 hours');
  1. Ya que generate_series genera proyecciones, podemos hacer JOINs prácticamente de la nada. Aprovechamos que carrera_id es in Integer.
SELECT a.id,
		   a.nombre,
		   a.apellido,
		   a.carrera_id,
		   s.a
FROM platzi.alumnos AS a
	INNER JOIN generate_series(0,10) AS s(a)
	ON s.a = a.carrera_id
ORDER BY a.carrera_id;

primer.png

1.png

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

RETO