Lección 10 de 20· M09

Hechas: 0/20(0%)

M09L10Semana 3~5 h

Ficha M09

L10 — Agregaciones y GROUP BY

~5.0 h · Semana 3

El dueño pregunta: “¿qué servicio se agenda más?”. Eso es GROUP BY.

Objetivo

Entregar sql/agg-citas-por-servicio.sql con al menos dos agregaciones ejecutadas.

Pasos

1. Lectura (40 min)

Funciones de agregación y GROUP BY / WHERE vs filtros de grupo.

2. Escribe y corre (90 min)

-- sql/agg-citas-por-servicio.sql
SELECT s.nombre,
       count(*) AS total_citas,
       count(*) FILTER (WHERE c.estado = 'completada') AS completadas,
       coalesce(sum(s.precio_centavos) FILTER (WHERE c.estado = 'completada'), 0) AS ingresos_centavos
FROM citas c
JOIN servicios s ON s.id = c.servicio_id
GROUP BY s.id, s.nombre
ORDER BY total_citas DESC;

(Ajusta si usas snapshot de precio en la cita.)

3. Segunda query (45 min)

Citas por día (date_trunc('day', inicia_en)) de los últimos 14 días.

4. Frase de negocio (20 min)

En comentario del SQL (lenguaje de consulta estructurado): “El servicio más agendado esta semana es X con N citas”.

5. Commit (15 min)

Lectura de esta lección

Fuente Qué leer Enlace
Fundamentos de BD — Elmasri & Navathe (ed. ES) Elmasri: agregación GROUP BY; PG aggregate functions Tutorial PostgreSQL
Catálogo Entrada de esta materia Bibliografía · M09

Hecho cuando

Marca la lección solo si:

  1. Existe y corre un SQL con GROUP BY + COUNT/SUM.
  2. Interpretas el resultado en una frase de negocio.
  3. Commit.

Errores comunes

  • Seleccionar columnas no agregadas fuera del GROUP BY.
  • Sumar precio en float.
  • Reportar conteos sin filtrar cancelada cuando la pregunta es “atendidas”.

Siguiente

L11 — Subconsultas y HAVING

←→