SELECT, WHERE y ORDER BY

Objetivo

Traducir preguntas simples de negocio a consultas correctas.

Explicación

SELECT elige columnas; WHERE filtra filas antes de agregarlas; ORDER BY ordena el resultado. Evita SELECT * en consultas que forman contratos de datos: seleccionar columnas explícitas documenta qué consumes. En un equipo de datos, SQL no se evalúa sólo por devolver filas: debe responder una pregunta de negocio, conservar el grain correcto y permitir que otra persona valide el resultado. Esta práctica usa el ecommerce del curso para obligarte a reconciliar conteos y totales, igual que harías antes de publicar una métrica en un dashboard. Para trabajar SELECT, WHERE y ORDER BY de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: Una tabla ordenada de mayor a menor sin pedidos cancelados. La verificación principal será: COUNT(*) del resultado debe coincidir con el recuento manual tras aplicar filtros. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.

Contexto profesional

En un equipo de datos, SQL no se evalúa sólo por devolver filas: debe responder una pregunta de negocio, conservar el grain correcto y permitir que otra persona valide el resultado. Esta práctica usa el ecommerce del curso para obligarte a reconciliar conteos y totales, igual que harías antes de publicar una métrica en un dashboard.

Ejemplo real

SELECT order_id, customer_id, order_date, amount
FROM orders
WHERE status = 'COMPLETED' AND amount >= 100
ORDER BY amount DESC;

Archivos o datos de entrada

  • data/ecommerce_customers.csv
  • data/ecommerce_orders.csv

Práctica guiada

Ejecuta la consulta y anota cuántos pedidos devuelve.

Laboratorio paso a paso

  • Prepara el entorno y localiza los datos/archivos de entrada: data/ecommerce_customers.csv, data/ecommerce_orders.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
  • Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «SELECT, WHERE y ORDER BY».
  • Ejecuta la práctica guiada: Ejecuta la consulta y anota cuántos pedidos devuelve. Documenta el comando, consulta o acción exacta y el resultado obtenido.
  • Resuelve el reto sin mirar la solución: Devuelve sólo pedidos completados de España superiores a 100 uniendo customers. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
  • Compara tu resultado con el criterio esperado: Una tabla ordenada de mayor a menor sin pedidos cancelados. Después ejecuta la comprobación: COUNT(*) del resultado debe coincidir con el recuento manual tras aplicar filtros.
  • Provoca deliberadamente un caso problemático relacionado con este error frecuente: Aplicar ORDER BY antes de pensar el filtro no cambia filas; sólo presentación.. Comprueba que sabes detectarlo y corregirlo.

Reto sin ayuda

Devuelve sólo pedidos completados de España superiores a 100 uniendo customers.

Resultado esperado

Una tabla ordenada de mayor a menor sin pedidos cancelados.

Cómo verificarlo

COUNT(*) del resultado debe coincidir con el recuento manual tras aplicar filtros.

Checklist de validación

  • El resultado cumple: Una tabla ordenada de mayor a menor sin pedidos cancelados.
  • Has ejecutado esta verificación y puedes explicar el resultado: COUNT(*) del resultado debe coincidir con el recuento manual tras aplicar filtros.
  • Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
  • Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica

Primero filtra orders; luego añade el JOIN a customers.

Solución paso a paso

1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: JOIN customers c ON o.customer_id=c.customer_id y añade c.country=’ES’. 3) Usa como referencia técnica el ejemplo de la lección (SELECT order_id, customer_id, order_date, amount FROM orders WHERE status = ‘COMPLETED’ AND amount >= 100 ORDER BY amount DESC;). 4) Ejecuta la verificación: COUNT(*) del resultado debe coincidir con el recuento manual tras aplicar filtros. 5) Compara con el resultado esperado: Una tabla ordenada de mayor a menor sin pedidos cancelados. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Aplicar ORDER BY antes de pensar el filtro no cambia filas; sólo presentación.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.

Errores frecuentes

  • Aplicar ORDER BY antes de pensar el filtro no cambia filas; sólo presentación.
  • Comparar números almacenados como texto puede producir orden incorrecto.

Qué debes recordar

Debes poder explicar qué filas produce la consulta y por qué.

Preguntas de entrevista

  • ¿Cómo demostrarías que una consulta no está duplicando métricas? Aplícalo concretamente a «SELECT, WHERE y ORDER BY».
  • ¿Qué comprobaciones harías antes de publicar este resultado a negocio? Explica qué evidencia enseñarías al revisor.

Siguiente paso

Después agruparás pedidos para obtener métricas.

Recursos de esta lección

Quiz de la lección

¿Qué cláusula elimina filas antes de GROUP BY?

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.