DÍA 08Fundamentos y filtros · SQL para Análisis de Datos

Agrupa filtros para expresar preguntas con varias opciones y rangos.

Día 8 18 minInicial

Combinar condiciones con AND, OR e IN

Objetivos

Al terminar podrás combinar rangos y listas sin depender de precedencias implícitas.

Concepto

AND exige que ambas condiciones sean verdaderas; OR acepta una u otra. Cuando una pregunta mezcla ambos operadores, usa paréntesis para mostrar qué condiciones pertenecen al mismo grupo.

BETWEEN incluye sus dos límites. IN compara una columna con una lista de valores. La consulta del ejemplo elige pagos dentro de un rango o menores de uno, y luego limita el conjunto a tres identificadores de cliente.

Ejemplo

SELECT payment_id, customer_id, amount
FROM payment
WHERE (amount BETWEEN 5.00 AND 10.00 OR amount < 1.00)
  AND customer_id IN (1, 2, 3)
ORDER BY amount DESC, payment_id ASC
LIMIT 10;

Los paréntesis hacen que la lista de clientes se aplique a las dos opciones de importe. BETWEEN 5.00 AND 10.00 incluye cinco y diez.

Práctica guiada

  1. Quita los paréntesis y explica qué operador se evalúa primero.
  2. Cambia IN (1, 2, 3) por dos identificadores y compara el filtro.
  3. Cambia BETWEEN a amount >= 5.00 AND amount < 10.00; nota que el límite superior ahora queda excluido.

Reto

Selecciona pagos de dos clientes que tengan un importe entre uno y cinco, inclusive. Devuelve identificador del pago, cliente e importe; ordena por cliente y fecha. Explica cómo los paréntesis aclaran la relación entre AND y OR.

Ver respuesta al reto
SELECT payment_id, customer_id, amount, payment_date
FROM sakila.payment
WHERE customer_id IN (1, 2)
  AND amount BETWEEN 1.00 AND 5.00
ORDER BY customer_id, payment_date, payment_id;

Los paréntesis en una condición equivalente como (customer_id = 1 OR customer_id = 2) AND amount BETWEEN 1 AND 5 dejan claro que el rango aplica a ambos clientes.

Quiz

1. ¿Qué evita el grupo (A OR B) AND C escrito con paréntesis?
2. ¿Qué cláusula conserva filas según una condición antes del resumen?
3. ¿Para qué añadir una clave única al final del ORDER BY?

Comprobación

Ya controlas listas y rangos. La siguiente lección combina búsquedas LIKE con comprobaciones correctas de NULL.

TU PROGRESO

Cargando estado…