¿Qué representa una línea antes y después de join?
Un pedido puede contener varias líneas de productos. Después de join, una línea representa un artículo pedido y el número de pedido se repite legítimamente.
El problema aparece cuando luego agregamos una cantidad almacenada a nivel de orden: se repite una vez por línea y se sobrevalora.
La consulta explicada
Empieza por definir qué debe representar una fila del resultado. Esta decisión determina las columnas, agrupaciones y controles necesarios.
El siguiente ejemplo aísla el mecanismo principal. Ejecútelo, observe el resultado y luego cambie una cláusula a la vez para comprender su efecto.
SELECT p.categorie,
SUM(l.quantite * l.prix_unitaire) AS chiffre_affaires
FROM lignes_commandes l
JOIN produits p ON p.id_produit = l.id_produit
GROUP BY p.categorie;Lea el resultado como un analista.
La medida utiliza las columnas presentes en el nivel de detalle de la fila. La categoría proviene del producto y no cambia la cantidad de líneas de detalle.
Para utilizar una métrica de pedido, primero añade las filas o la subtabla a nivel de pedido antes de unirse.
- Cuenta las líneas antes y después de JOIN.
- Comprueba la unicidad de cada clave.
- Escribe la cardinalidad esperada.
- Conciliar el total final con una fuente independiente.
Errores que distorsionan el análisis
Una consulta puede ser válida sin responder correctamente a la pregunta. Los errores más costosos suelen ser silenciosos: perímetro incorrecto, línea multiplicada o valor faltante interpretado como cero.
Antes de compartir el resultado, compárelo con una pequeña muestra calculada manualmente y mantén la definición del alcance con la consulta.
- Añade DISTINCT sin entender la repetición.
- Sume el monto de un pedido después de join en las líneas.
- Conéctese en una columna no única.
- Olvídate de que una segunda tabla de detalle multiplica aún más el resultado.
Ponte en practica
Resuelva el ejercicio de las tres tablas y comprueba manualmente una orden con dos líneas.
El simulador SQL de SQL.tn solo ejecuta consultas de lectura sobre datos ficticios en su navegador. Puede probar varias escrituras y comparar sus resultados sin instalar ningún software.
Pon esta guía en práctica.
Abre el ejercicio relacionado, ejecuta tu consulta y compara el resultado esperado.
