SQL y datos

10 proyectos de SQL para tu portafolio

10 proyectos de SQL para tu portafolio de analista: desde análisis de ventas hasta segmentación RFM, cohortes y optimización, con datasets sugeridos.

Por Equipo editorial de DashCore HubActualizado 7 min de lectura

La mejor forma de demostrar que sabes SQL es mostrar proyectos terminados que respondan preguntas de negocio reales. Aquí tienes 10 proyectos de práctica de SQL, ordenados de principiante a avanzado, cada uno con una idea de dataset, las habilidades que demuestra y las preguntas que debes responder. Haz bien tres o cuatro, publícalos en GitHub y tendrás un portafolio que los reclutadores sí pueden leer.

Cómo elegir y preparar tus proyectos

Los reclutadores leen por encima. Un proyecto con una pregunta clara, SQL limpio y una conclusión breve por escrito vale más que diez notebooks a medio terminar. Antes de empezar, instala una base de datos local gratuita: PostgreSQL es una opción sólida por defecto, SQLite no necesita servidor y MySQL o SQL Server Express también funcionan. Si no sabes cuál escoger, lee PostgreSQL vs MySQL vs SQL Server para analítica.

Para los datos tienes tres buenas opciones:

  • Bases de datos de ejemplo clásicas como Chinook (una tienda de música), Northwind (una empresa comercial), Sakila (un videoclub para MySQL) y el ejemplo DVD rental de PostgreSQL. Son realistas, relacionales y están bien documentadas.
  • Datos abiertos públicos de portales de ciudades y gobiernos o de Kaggle. Lee siempre la licencia y cita la fuente en tu README.
  • Datos generados por ti con Python o con un asistente de IA, útiles cuando quieres un escenario de negocio específico.

Una estructura sencilla para cada proyecto

Guarda cada proyecto en su propia carpeta de GitHub con la misma organización, para que quien lo revise sepa dónde mirar:

retail-sales-sql/
  README.md          -- pregunta, fuente de datos, hallazgos
  data/              -- CSV pequeños o enlace a la fuente
  sql/
    01_setup.sql     -- CREATE TABLE y carga de datos
    02_cleaning.sql
    03_analysis.sql
  results/           -- tablas exportadas o capturas de gráficos

Los archivos SQL numerados muestran el orden de tu trabajo, y los comentarios dentro de cada consulta explican por qué tomaste una decisión, no solo qué hace el código. Nunca subas contraseñas ni cadenas de conexión.

Proyectos para principiantes (1 a 3)

1. Exploración de ventas minoristas

Dataset: Northwind o cualquier conjunto de pedidos y productos. Habilidades: SELECT, WHERE, ORDER BY, GROUP BY y joins básicos. Preguntas: ¿Cuáles son los 10 productos con más ingresos? ¿Qué mes tuvo más ventas? ¿Qué clientes no han comprado en los últimos seis meses?

2. Análisis de clientes de una tienda de música

Dataset: Chinook. Habilidades: joins entre varias tablas, agregaciones y HAVING. Preguntas: ¿Qué géneros generan más ingresos en cada país? ¿Qué agente de ventas produce más ingresos? ¿Qué clientes compraron de más de cinco géneros?

3. Auditoría de limpieza de datos

Dataset: un CSV desordenado a propósito (los portales de datos abiertos están llenos de ellos). Habilidades: CASE, TRIM, COALESCE, conversión de tipos y búsqueda de duplicados. Entregable: un reporte de "antes y después" que cuente nulos, duplicados y valores inválidos, junto con el SQL que los corrigió. La limpieza es una parte enorme del trabajo real de un analista, así que este proyecto le dice mucho a un empleador.

Proyectos intermedios (4 a 7)

4. Retención por cohortes

Habilidades: funciones de fecha, CTE y self-joins. Agrupa a los clientes por el mes de su primera compra y calcula qué porcentaje regresa en cada mes siguiente. Es un tema clásico de entrevistas y un dashboard clásico.

5. Segmentación RFM

Habilidades: funciones de ventana como NTILE. Califica a cada cliente por Recencia, Frecuencia y valor Monetario y asigna segmentos como "campeones" o "en riesgo". Esta es una versión que funciona en PostgreSQL:

with customer_stats as (
    select
        customer_id,
        current_date - max(order_date)  as days_since_last,
        count(*)                        as frequency,
        sum(amount)                     as monetary
    from orders
    group by customer_id
),
scored as (
    select
        customer_id,
        ntile(5) over (order by days_since_last desc) as r_score,
        ntile(5) over (order by frequency)            as f_score,
        ntile(5) over (order by monetary)             as m_score
    from customer_stats
)
select
    customer_id, r_score, f_score, m_score,
    case
        when r_score >= 4 and f_score >= 4 then 'Champion'
        when r_score <= 2 and f_score >= 4 then 'At risk'
        when r_score >= 4 and f_score <= 2 then 'New or occasional'
        else 'Regular'
    end as segment
from scored
order by r_score desc, f_score desc;

Al ordenar la recencia de forma descendente, los compradores más recientes caen en el grupo 5, así que un puntaje más alto siempre es mejor. Si NTILE y OVER son nuevos para ti, lee primero Funciones de ventana en SQL.

6. Análisis de embudo de ventas

Dataset: datos de eventos de una web o app (visita, agregar al carrito, checkout, compra). Habilidades: agregación condicional con COUNT(DISTINCT CASE WHEN ...). Preguntas: ¿En qué paso abandonan los usuarios? ¿Cambia la tasa de conversión según el dispositivo o la fuente de tráfico?

7. Reporte de inventario y reabastecimiento

Habilidades: joins entre productos, existencias y ventas; totales acumulados con funciones de ventana. Calcula las ventas diarias promedio por producto, los días de inventario restantes y qué artículos hay que volver a pedir. Los equipos de operaciones y distribución usan exactamente esta lógica cada semana.

Consejo: En cada proyecto, escribe un README con cuatro partes: la pregunta de negocio, el dataset y su fuente, tu enfoque y tres hallazgos clave en lenguaje sencillo. La conclusión escrita es lo que separa a un analista de alguien que solo ejecuta consultas.

Proyectos avanzados (8 a 10)

8. Construye un pequeño data warehouse

Habilidades: modelado dimensional, CREATE TABLE e INSERT ... SELECT. Convierte una base normalizada como Chinook en un esquema de estrella con una tabla de hechos de ventas y dimensiones de cliente, producto y fecha. Luego conecta Power BI o Tableau. Punto extra: reconstruye las transformaciones con dbt y agrega pruebas.

9. Consultas de KPI con comparación interanual

Habilidades: LAG, truncado de fechas, cálculo de porcentajes y manejo de la división entre cero con NULLIF. Genera ingresos mensuales, número de pedidos y ticket promedio con crecimiento mes contra mes y año contra año, listos para alimentar un dashboard.

10. Optimización de rendimiento de consultas

Habilidades: índices, EXPLAIN o EXPLAIN ANALYZE y reescritura de consultas lentas. Genera una tabla con algunos millones de filas, escribe una consulta de reporte lenta y documenta cómo los índices y los cambios en la consulta la mejoraron. Pocos portafolios de principiantes incluyen esto, así que destaca.

Tabla resumen

#ProyectoNivelHabilidades SQL principales
1Exploración de ventasPrincipianteGROUP BY, ORDER BY, joins
2Tienda de músicaPrincipianteJoins múltiples, HAVING
3Auditoría de limpiezaPrincipianteCASE, COALESCE, duplicados
4Retención por cohortesIntermedioFechas, CTE
5Segmentación RFMIntermedioNTILE, funciones de ventana
6Embudo de ventasIntermedioAgregación condicional
7ReabastecimientoIntermedioTotales acumulados
8Mini data warehouseAvanzadoEsquema de estrella, DDL
9KPI interanualesAvanzadoLAG, NULLIF, tasas de crecimiento
10OptimizaciónAvanzadoÍndices, EXPLAIN

Usa la IA sin hacerte trampa

Los asistentes de IA son excelentes para generar datos de ejemplo realistas, explicar mensajes de error y revisar tus consultas. Pero no deben escribir el primer borrador por ti, porque el objetivo de un portafolio es mostrar tu propio razonamiento, y en la entrevista te van a pedir que expliques cada línea.

Atajo con IA: Pídele a ChatGPT o a Claude: "Crea sentencias CREATE TABLE e INSERT de PostgreSQL para una pequeña base de datos de e-commerce con customers, products, orders y order_items. Incluye unos 200 pedidos a lo largo de 18 meses, algunos clientes duplicados con nombres escritos de forma distinta y algunos emails nulos para practicar limpieza de datos". Ejecuta el script y luego resuelve las preguntas por tu cuenta.

Cuando tus proyectos estén listos, preséntalos bien. La guía para armar un portafolio de analista de datos explica cómo estructurar GitHub, redactar casos de estudio y enlazar tus proyectos desde el currículum.

Próximos pasos

Elige esta semana un proyecto de principiante y uno intermedio. Instala PostgreSQL o SQLite, carga una base de datos de ejemplo, escribe tus preguntas antes de escribir una sola línea de SQL y termina cada proyecto con un README y tres hallazgos. Cuando ambos estén en GitHub, pasa al proyecto de cohortes o al de RFM y conecta los resultados a un dashboard sencillo en Power BI o Tableau. Con tres proyectos bien pulidos ya puedes empezar a postularte.

Mira: lecciones en video

SQL Data Analyst Portfolio Project | Like I Do in My Real Projectspor Data with Baraa · Ver en YouTube ↗Video en inglés — activa los subtítulos traducidos en YouTube si los necesitas.

Preguntas frecuentes

¿Cuántos proyectos de SQL necesito en mi portafolio?

Tres o cuatro proyectos bien documentados suelen convencer más que muchos superficiales. Busca una mezcla de limpieza, análisis y al menos un proyecto con funciones de ventana o modelado.

¿Dónde encuentro datasets gratuitos para practicar SQL?

Bases de ejemplo como Chinook, Northwind y Sakila son gratuitas y relacionales. Los portales de datos abiertos de gobiernos y Kaggle también ofrecen muchos datasets; revisa la licencia antes de publicar tu trabajo.

¿Qué base de datos uso para los proyectos de práctica?

PostgreSQL es una buena opción por defecto porque es gratuita y tiene muchas funciones analíticas. SQLite es la más fácil de instalar, y MySQL o SQL Server Express sirven si el empleo que buscas las usa.

¿Puedo usar IA para armar mi portafolio de SQL?

Usa la IA para generar datos de ejemplo, explicar errores y revisar tus consultas, pero escribe tú las soluciones. En la entrevista te pedirán explicar tu lógica línea por línea.

¿Aprendes con la Academia?
Marca esta lección como completada para seguir tu progreso.
Hacer el quiz