pandas hace lo mismo
Introdución a las Bases de Datos
Todo lo que aprenderás sobre PostgreSQL para ciencia de datos
Importación de los datos para el proyecto
Breve historia de las bases de datos
Puntos fuertes de las bases de datos relacionales
Conceptos importantes de las bases de datos relacionales
Principales sentencias SQL
Ciencia de Datos
¿Qué es la ciencia de datos?
Aplicación de la ciencia de datos
Equipos orientados a datos
Data science vs. Machine Learning
Particularidades de PostgreSQL
Diferencias entre otros manejadores y PostgreSQL
Conoce los superpoderes de PLPGSQL
PLPGSQL: Stored procedures
PLPGSQL: conteo, registro y triggers
PLPGSQL: Aplicado a data science
Integración con otros lenguajes
Tipos de Datos Personalizados
Casos Prácticos
Explicación de la estructura de la base de datos de ejemplo
Agregación de datos
Pensando en la presentación
Trabajando con objetos
Agregando objetos
Common table expressions
Window functions
Particiones
Platzi movies dashboard
Presentación del proyecto
Top 10
Actualizando precios
Usando rank y percent rank
Ordenando datos geográficos
Datos en el tiempo
Visualizando datos con Tableau
Siguientes pasos
¿Qué sigue?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 25
Preguntas 6
pandas hace lo mismo
Se me ocurre un dashboard para una tienda online, donde cada venta ejecutada dispare un trigger que actualice una función de clientes la cual alimenta algunos indicadores de ventas, cantidad de clientes y productos mas vendidos.
CREATE OR REPLACE FUNCTION movies_stats()
RETURNS VOID
LANGUAGE plpgsql
AS $$
DECLARE
total_rated_r REAL := 0.0;
total_larger_thank_100 REAL := 0.0;
total_published_2006 REAL := 0.0;
average_duracion REAL := 0.0;
average_rental_price REAL := 0.0;
BEGIN
total_rated_r := COUNT(*) FROM peliculas WHERE clasificacion = 'R';
total_larger_thank_100 := COUNT(*) FROM peliculas WHERE duracion > 100;
total_published_2006 := COUNT(*) FROM peliculas WHERE anio_publicacion = 2006;
average_duracion := AVG(duracion) FROM peliculas;
average_rental_price := AVC(precio_renta) FROM peliculas;
TRUNCATE TABLE peliculas_estadisticas;
INSERT INTO peliculas_estadisticas (tipo_estadisticas, total)
VALUES
('Peliculas con clasificacion R', total_rate_r),
('Peliculas de mas de 100 minutos', total_larger_than_100),
('Peliculas publicadas en 2006', total_published_2006),
('Promedio de duracion en minutos', average_duracion),
('Precio promedio de renta', average_rental_price);
END
$$;
SELECT movies_stats();
SELECT * FROM peliculas_estadisticas;
Idea:
El hacer un mapa actualizado del COVID 19 por municipio en México, con las estadisticas del CINVESTAV.
Para tener mayor detalle de los contagios y muertes en México
TRUNCATE TABLE
¿Cuándo vale la pena mantener una tabla de estadÃsticas en lugar de ejecutar el query que genera el cálculo?
Se me ocurre presentar las ventas diarias y los movimientos de almacén que se consideren necesarios, para evaluar el stock de los productos.
En mi trabajo lo uso constantemente para chequear bugs de la base de datos y saber el estado de los mismos. Como herramienta es maravillosa.
En un tienda por descuento serÃa útil tener por ejemplo el top 10 de sku’s con mayor rotación, la categorÃa y linea de productos con mayor facturación, el ticket promedio de los clientes según rango de edades, los dÃas y el horario de mayor facturación entre otros indicadores claves que podrÃan interesar al negocio.
Idea de uso:
Para el control estadistico y analisis de vendedores, que llevara lo siguiente:
Reto
Se puede crear una función que permita calcular un KPI usando más de 1 entidad.
Se me ocurre que podemos generar un reporte de productividad donde me información sobre el desempeño de mi departamento. Cuantas faltas he tenido en promedio en los últimos 90 dÃas, cuál ha sido la producción por dÃa en ese lapso de tiempo, el tiempo muerto generado por dÃa, algún indicador de productividad como OEE o AU, mi cumplimiento en producción, etc. Y si generarÃa un trigger ya que esta información debe ser insertada a diario en el sistema cada vez que termine un turno.
Aplicando las notas de las clases y retornando objetos json de nuestras estadisticas
DROP FUNCTION movies_stats();
create or replace function movies_stats()
returns json
language plpgsql
as $$
DECLARE
total_rated_r REAL := 0.0;
total_larger_thank_100 REAL := 0.0;
total_published_2006 REAL :=0.0;
average_duracion REAL :=0.0;
average_rental_prices REAL :=0.0;
payload JSON;
BEGIN
total_rated_r := count(*) from peliculas where clasificacion = 'R';
total_larger_thank_100 := count(*) from peliculas where duracion > 100;
total_published_2006 := count(*) from peliculas where anio_publicacion = '2006';
average_duracion := avg(duracion) from peliculas;
average_rental_prices := avg(precio_renta) from peliculas;
TRUNCATE Table peliculas_estadisticas;
Insert Into peliculas_estadisticas (tipo_estadistica, total)
VALUES
('PelÃculas con classification R',total_rated_r),
('PelÃculas de más de 100 minutos',total_larger_thank_100),
('PelÃculas publicadas en 2006',total_published_2006),
('Promedio de duración en minutos',average_duracion),
('Precio promedio de renta',average_rental_prices);
-- Build the payload
payload := json_build_object(
'timestamp',CURRENT_TIMESTAMP,
'total_rated_r',total_rated_r,
'total_larger_thank_100',total_larger_thank_100,
'total_published_2006',total_published_2006,
'average_duracion',average_duracion,
'average_rental_prices',average_rental_prices
);
return payload;
END;
$$;
select movies_stats();
Se me ocurre sumarle un Trigger y crear un tablero con reportes online de las ventas de una tienda o servicio.
Se que es la erplica de lo que ya ocurrio, pero bueno, metomo tiempo por corregir los pequeños errores que no me dejaba correr la funcion.
create or replace function movies_statics()
RETURNS VOID
LANGUAGE PlPGSQL
AS $$
DECLARE
total_rated_r REAL := 0.0;
total_larger_than_100 REAL := 0.0;
total_published_2016 REAL := 0.0;
average_duration REAL := 0.0;
average_rental_price REAL := 0.0;
BEGIN
total_rated_r := COUNT() FROM peliculas WHERE clasificacion = ‘R’;
total_larger_than_100 := COUNT() FROM peliculas WHERE duracion > 100;
total_published_2016 := COUNT(*) FROM peliculas WHERE anio_publicacion = 2006;
average_duration := avg(duracion) FROM peliculas;
average_rental_price := avg(precio_renta) FROM peliculas;
truncate table peliculas_estadisticas;
insert into peliculas_estadisticas (Tipo_estadistica, total)
VALUES
('PELICULAS RATED R',total_rated_r),
('MAS LARGAS DE 100 MIN',total_larger_than_100),
('TOTAL PUBLICADAS EN 2016',total_published_2016),
('DURACION PROMEDIO',average_duration),
('PRECIO DE ALQUILER PROMEDIO',average_rental_price);
END
$$;
SELECT movies_statics()
SELECT * FROM peliculas_estadisticas;
un dashboard que dependa de una tabla y esa tabla lo actualiza el triggger para ventas, almacenes, cantidad de población, nose toma de asistencia en las escuelas, etc
para mi caso la cantidad de vehiculos que tienen siniestros viales (choques) llevar ese record de que marca, que año, el genero que mas accidentes tienen
Entendido
Uh… pero calcular todo eso por cada entrada no ha de ser lo mejor. ¿Habrá alguna manera de hacer que se ejecute cada 10 o 20 entradas?
interesante
Muy buen ejercicio
promedio del tiempo de renta un automóvil, promedio del precio pagad o por los clientes por la renta de automóviles, sumatoria de cada clase de autos disponibles para la renta en cada punto de servicio.
Por ejemplo un dashboard donde se tengan las estadÃsticas de las sucursales y análisis de los NPS para cada una.
Sacar las estadÃsticas de un trimestre en ventas de una empresa, por lÃneas de productos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.