Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Datos en el tiempo

31/33
Recursos

Aportes 16

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Comparto estos dos querys trabajando con la tabla de pagos de la DB platzi_movies

--Cant de pagos por año, mes, costos percibidos y película
SELECT date_part('year', pagos.fecha_pago) AS anio,
	date_part('month', pagos.fecha_pago) AS mes,
	COUNT (*) AS Cant_pagos,
	SUM (cantidad) AS Cant_$_Rentas,
	peliculas.titulo
FROM pagos
	INNER JOIN rentas ON rentas.renta_id = pagos.renta_id
	INNER JOIN inventarios ON inventarios.inventario_id = rentas.inventario_id
	INNER JOIN peliculas ON inventarios.pelicula_id = peliculas.pelicula_id
GROUP BY peliculas.titulo, anio, mes
ORDER BY cant_pagos DESC;

--Cant de pagos por año, mes, costos percibidos
SELECT date_part('year', pagos.fecha_pago) AS anio,
	date_part('month', pagos.fecha_pago) AS mes,
	COUNT (*) AS Cant_pagos,
	SUM (cantidad) AS Cant_$_Rentas
FROM pagos
GROUP BY anio, mes
ORDER BY anio, mes, cant_pagos DESC;```

Algo no me cuadraba haciendo queries de los pagos, así que hice esto y me di cuenta que la gente paga 2 años después de rentar las películas. Qué buen servicio.

Por que no usar WHERE en lugar de INNER JOIN?

Hice una consulta para sacar la Cantidad de pagos mensuales.

SELECT
EXTRACT(YEAR FROM fecha_pago) as anio,
EXTRACT(MONTH FROM fecha_pago) as mes,
SUM(cantidad) as total_pago_mensual
FROM pagos
group by anio, mes
order by anio asc ,mes asc

Está clase fue muy útil a pesar que la consulta era muy sencilla.
Me quedo claro como darle siginificado a los datos a traves del tiempo asignando alguna categora para sumergirse mas en el comportamiento en este caso del mercado de rentas de películas.

La cantidad pagada por mes a los empleados.

SELECT date_part('year', pagos.fecha_pago) AS anio,
	   date_part('month', pagos.fecha_pago) AS mes,
	   SUM(pagos.cantidad) AS cantidad_percibida
FROM   pagos
GROUP BY anio, mes
ORDER BY anio, mes;

esto se hace tan rápido y fácil en excel 😃

Como dato, todos los rows de actores, se actualizaron el mismo día.

Entendido

SELECT date_part('year', rentas.fecha_renta) AS anio,
		date_part('month', rentas.fecha_renta) AS mes,
		peliculas.titulo,
		COUNT (*) AS numero_rentas
FROM rentas
	INNER JOIN inventarios ON rentas.inventario_id = inventarios.inventario_id
	INNER JOIN peliculas ON peliculas.pelicula_id = inventarios.pelicula_id
GROUP BY anio, mes, peliculas.pelicula_id;

SELECT date_part('year', rentas.fecha_renta) AS anio,
		date_part('month', rentas.fecha_renta) AS mes,
		COUNT (*) AS numero_rentas
FROM rentas
GROUP BY anio, mes;

SELECT date_part('year', rentas.fecha_renta) AS anio,
		date_part('month', rentas.fecha_renta) AS mes,
		COUNT (*) AS numero_rentas
FROM rentas
GROUP BY anio, mes
ORDER BY anio, mes;

muy productiva la clase

interesante

😃

Este es el query que se me ocurrió para el reto:

select date_part('year', rentas.fecha_renta) as year,
	   date_part('month', rentas.fecha_renta) as month,
	   peliculas.titulo,
	   count(*) as numero_rentas
from   rentas
	inner join inventarios on rentas.inventario_id = inventarios.inventario_id
	inner join peliculas on peliculas.pelicula_id = inventarios.pelicula_id
group by year, month, peliculas.pelicula_id;

select date_part('year', rentas.fecha_renta) as year,
	   date_part('month', rentas.fecha_renta) as month,
	   count(*) as numero_rentas
from   rentas
	
group by year, month
order by year, month;

excelente, gracias