Domina T‑SQL, modelado, optimización, seguridad, procedimientos almacenados, ETL y más. Incluye scripts descargables, datasets de práctica y soporte para resolver dudas.
-- Ventas totales por cliente (TOP 5)
SELECT TOP 5 c.Cliente,
SUM(v.Total) AS Monto
FROM dbo.Ventas v
JOIN dbo.Clientes c ON v.ClienteID=c.ClienteID
GROUP BY c.Cliente
ORDER BY Monto DESC;
Estructurado en módulos progresivos con retos y proyectos al final de cada bloque.
Código claro, optimizado y con propósito. Cada consulta tiene su dataset y explicación paso a paso.
-- Top 3 productos por ciudad (ventana)
WITH r AS (
SELECT Ciudad, Producto,
SUM(Total) AS Monto,
ROW_NUMBER() OVER(PARTITION BY Ciudad ORDER BY SUM(Total) DESC) rn
FROM dbo.Ventas
GROUP BY Ciudad, Producto
)
SELECT * FROM r WHERE rn <= 3;
-- UPSERT con MERGE
MERGE dbo.Clientes AS tgt
USING dbo.ClientesNuevos AS src
ON tgt.Email = src.Email
WHEN MATCHED THEN
UPDATE SET tgt.Telefono = src.Telefono, tgt.Ciudad = src.Ciudad
WHEN NOT MATCHED THEN
INSERT(Nombre, Email, Telefono, Ciudad)
VALUES(src.Nombre, src.Email, src.Telefono, src.Ciudad);
-- Enmascaramiento dinámico
CREATE TABLE dbo.Usuarios(
UsuarioID INT IDENTITY(1,1) PRIMARY KEY,
Email NVARCHAR(200) MASKED WITH (FUNCTION = 'email()') NULL,
IngresoMensual INT MASKED WITH (FUNCTION = 'random(1000,9000)')
);
“El mejor curso de SQL Server que he tomado. Pude optimizar consultas reales en mi trabajo a la semana 2.”
“Los scripts y ejercicios son oro puro. El proyecto final me ayudó a conseguir una promoción.”
“Claridad total. Desde cero entendí T‑SQL y ahora automatizo reportes con procedimientos almacenados.”