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.
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
| # | Proyecto | Nivel | Habilidades SQL principales |
|---|---|---|---|
| 1 | Exploración de ventas | Principiante | GROUP BY, ORDER BY, joins |
| 2 | Tienda de música | Principiante | Joins múltiples, HAVING |
| 3 | Auditoría de limpieza | Principiante | CASE, COALESCE, duplicados |
| 4 | Retención por cohortes | Intermedio | Fechas, CTE |
| 5 | Segmentación RFM | Intermedio | NTILE, funciones de ventana |
| 6 | Embudo de ventas | Intermedio | Agregación condicional |
| 7 | Reabastecimiento | Intermedio | Totales acumulados |
| 8 | Mini data warehouse | Avanzado | Esquema de estrella, DDL |
| 9 | KPI interanuales | Avanzado | LAG, NULLIF, tasas de crecimiento |
| 10 | Optimización | Avanzado | Í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.
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

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.
Marca esta lección como completada para seguir tu progreso.