En este desafío se ponen a prueba algunos conocimientos SQL para hacer consultas con funciones de agrupación como SUM, COUNT, AVG y además las cláusulas ORDER BY o GRUP BY, etc. Todo el desafío queda explicado en este archivo PDF
- ¿Cuántos registros hay?
SELECT COUNT(*)
FROM inscritos;
- ¿Cuántos inscritos hay en total?
SELECT SUM(cantidad) AS total_inscritos
FROM inscritos;
- ¿Cuál o cuáles son los registros de mayor antigüedad?
SELECT *
FROM inscritos
WHERE fecha = (SELECT MIN(fecha) FROM inscritos);
- ¿Cuántos inscritos hay por día? (entendiendo un día como una fecha distinta de ahora en adelante)
SELECT fecha, SUM(cantidad) AS total_inscritos
FROM inscritos
GROUP BY fecha
ORDER BY fecha;
- ¿Cuántos inscritos hay por fuente?
SELECT fuente, SUM(cantidad)
FROM inscritos
GROUP BY fuente;
- ¿Qué día se inscribió la mayor cantidad de personas? ¿Cuántas personas se inscribieron en ese día?
SELECT fecha, SUM(cantidad) AS total_inscritos
FROM inscritos
GROUP BY fecha
ORDER BY total_inscritos DESC
LIMIT 1;
- ¿Qué días se inscribieron la mayor cantidad de personas utilizando el blog? ¿Cuántas personas fueron?
SELECT fecha, fuente, SUM(cantidad) AS total_inscritos
FROM inscritos
GROUP BY fecha, fuente
HAVING fuente = 'Blog'
ORDER BY total_inscritos DESC
LIMIT 1;
- ¿Cuál es el promedio de personas inscritas por día?
SELECT fecha, ROUND(AVG(cantidad), 2)
FROM inscritos
GROUP BY fecha;
- ¿Qué días se inscribieron más de 50 personas?
SELECT fecha, SUM(cantidad) AS total_inscritos
FROM inscritos
GROUP BY fecha
HAVING SUM(cantidad) > 50
ORDER BY SUM(cantidad) DESC;
- ¿Cuál es el promedio diario de personas inscritas a partir del tercer día en adelante, considerando únicamente las fechas posteriores o iguales a la indicada?
SELECT AVG(cantidad) AS promedio
FROM inscritos
WHERE fecha >= (SELECT fecha FROM inscritos ORDER BY fecha OFFSET 2 LIMIT 1);
ℹ️ Desafío desarrollado con PortgreSQL versión 14.9