SQL · Sección 8

Funciones de grupo

Cálculos sobre conjuntos de filas con SUM, AVG, COUNT, MIN, MAX y DISTINCT.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Uniones avanzadas.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Agregación con COUNT y DISTINCT y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

04 / PREPARA EL LABORATORIO

Las primeras secciones se leen sin instalar nada. Para practicar SQL prepara PostgreSQL o un DBMS equivalente.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Agregación y COUNT y DISTINCT?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Resumirás muchas filas en indicadores fiables y comprenderás cómo DISTINCT y los valores NULL cambian el significado de un conteo.

Al terminar podrás
  • Las funciones de grupo producen un valor por conjunto
  • COUNT(*) y COUNT(columna) no siempre coinciden
  • NVL cambia la pregunta que responde un promedio
01
Resumen

Las funciones de grupo producen un valor por conjunto

SUM, AVG, MIN, MAX y COUNT analizan varias filas. Sin GROUP BY, toda la selección forma un solo grupo.

01

SUM y AVG requieren datos numéricos.

02

MIN y MAX funcionan con números, textos o fechas compatibles.

03

COUNT(*) cuenta filas.

Comprueba lo aprendido · 01

¿Cuántas filas devuelve esta consulta si hay cien ventas?

Mostrar respuesta

Una fila con tres valores agregados, porque no hay GROUP BY.

02
Conteos

COUNT(*) y COUNT(columna) no siempre coinciden

COUNT(*) cuenta filas. COUNT(columna) ignora NULL. COUNT(DISTINCT columna) cuenta valores diferentes que no sean NULL.

01

COUNT(*) incluye filas con valores ausentes.

02

COUNT(correo) solo cuenta correos conocidos.

03

DISTINCT elimina repeticiones antes de contar.

Comprueba lo aprendido · 02

Hay 10 clientes, 3 con correo NULL y 5 ciudades distintas. ¿Qué devuelven COUNT(*), COUNT(correo) y COUNT(DISTINCT ciudad)?

Mostrar respuesta

10, 7 y 5 respectivamente, suponiendo que ninguna ciudad sea NULL.

03
Valores ausentes

NVL cambia la pregunta que responde un promedio

AVG(bono) ignora bonos NULL; AVG(NVL(bono,0)) los trata como cero. Ninguna opción es universalmente correcta: depende de la regla del negocio.

01

Ignorar NULL mide solo bonos conocidos.

02

Sustituir por cero asume que ausencia significa no recibir bono.

03

La decisión debe documentarse.

Comprueba lo aprendido · 03

¿Cuándo sería incorrecto reemplazar un salario NULL por cero?

Mostrar respuesta

Cuando NULL significa que el salario es desconocido. Cero afirmaría algo distinto y reduciría artificialmente el promedio.

Resumen de la sección

Tu recorrido en tres ideas

  1. Las funciones de grupo producen un valor por conjunto
  2. COUNT(*) y COUNT(columna) no siempre coinciden
  3. NVL cambia la pregunta que responde un promedio
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Tratar COUNT(*), COUNT(columna) y COUNT(DISTINCT columna) como equivalentes.

ERROR 02

Calcular promedios sin decidir qué significa un valor ausente.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Construye un resumen de ventas con filas totales, clientes conocidos, clientes distintos, suma y promedio.

Mostrar pauta de corrección
Una respuesta sólida:
  • Cada indicador responde una pregunta explícita.
  • Explica cómo afecta NULL a cada cálculo.
  • Contrasta el resultado con un conjunto pequeño conocido.