Top 10 Películas Más Rentadas: Consulta SQL Paso a Paso

Clase 27 de 34Curso de PostgreSQL Aplicado a Ciencia de Datos

Resumen

¿Cómo realizar un análisis de top diez con SQL?

Para muchas organizaciones, es importante identificar los elementos más destacados dentro de un conjunto de datos. En este contexto, comúnmente se utilizan las listas de "top diez" para resaltar las principales métricas de importancia, como las películas más rentadas de un catálogo. A través de este análisis, podemos llevar a cabo diferenciaciones útiles y estratégicas basadas en criterios específicos. A continuación, exploraremos cómo implementarlo utilizando SQL para obtener resultados precisos y bien organizados.

¿Cuál es el approach para el top diez de películas más rentadas?

Para identificar cuáles son las diez películas más rentadas, es importante conocer la estructura y relaciones dentro de la base de datos. En las bases de datos relacionales, rara vez un dato se obtiene de una tabla aislada; más bien, se requiere unir varias tablas para obtener la información completa. En este caso, es crucial tener claro cómo se relacionan las tablas que contienen información sobre rentas con las tablas que contienen las películas. Esto significa emplear uniones y clausulas específicas para organizar y filtrar los datos de manera eficiente.

SELECT 
    p.película_id AS id, 
    p.título, 
    COUNT(r.renta_id) AS número_rentas
FROM 
    rentas r
INNER JOIN 
    inventarios i ON r.inventario_id = i.inventario_id
INNER JOIN 
    películas p ON i.película_id = p.película_id
GROUP BY 
    p.película_id
ORDER BY 
    número_rentas DESC
LIMIT 10;

Esta consulta SQL nos proporciona los campos de ID de película, su título y el número total de rentas, permitiendo obtener una lista de las películas más populares.

¿Qué técnica utilizamos para asignar un índice de ranking?

Para presentar los datos con un índice que indique la posición de cada película dentro del top diez, se puede utilizar una función de ventana. Esta función ayuda a superar las limitaciones de los métodos tradicionales y asegura que el índice sea claro y utilizable en sistemas gráficos u otras presentaciones de datos.

SELECT 
    ROW_NUMBER() OVER(ORDER BY COUNT(r.renta_id) DESC) AS lugar,
    p.película_id AS id, 
    p.título, 
    COUNT(r.renta_id) AS número_rentas
FROM 
    rentas r
INNER JOIN 
    inventarios i ON r.inventario_id = i.inventario_id
INNER JOIN 
    películas p ON i.película_id = p.película_id
GROUP BY 
    p.película_id
ORDER BY 
    número_rentas DESC
LIMIT 10;

La función ROW_NUMBER() genera un índice para cada fila basándose en el orden descendente del número de rentas, lo cual es especialmente útil para crear clasificaciones claras y directas.

¿Cómo garantizar que nuestra consulta sea eficiente y manejable?

Es fundamental que las consultas SQL sean optimizadas para asegurar su eficacia. Las prácticas para mejorar el rendimiento implican comprender las uniones necesarias y utilizar correctamente las funciones de agregado y ventana. A continuación, algunos consejos prácticos:

  • Conoce tu base de datos: Familiarízate con las tablas y sus relaciones.
  • Utiliza índices: Facilitan el acceso rápido a las filas correspondientes.
  • Minimiza el uso de alias: Reduce la carga cognitiva y mejora la claridad del código.
  • Aprovecha las funciones de ventana: Estas funciones son poderosas para realizar cálculos complejos sin afectar el rendimiento de la consulta.

Al seguir estas recomendaciones, tu consulta no solo será precisa y útil, sino que también estará optimizada para su uso en entornos de producción y reportes gráficos. ¡Sigue explorando e implementando más habilidades de SQL para mantenerte en la vanguardia del análisis de datos!