typestar

Agregar a través de un join en SQL

Agrupa después de unir para resumir las filas hijas por cada padre.

SELECT
    p.name AS product,
    COUNT(DISTINCT i.order_id) AS orders,
    SUM(i.quantity) AS units,
    ROUND(SUM(i.quantity * p.price), 2) AS revenue
FROM products AS p
JOIN order_items AS i
    ON i.sku = p.sku
GROUP BY p.name
HAVING SUM(i.quantity) > 10
ORDER BY revenue DESC;

Cómo funciona

  1. Las columnas del padre van al GROUP BY; las del hijo, a los agregados.
  2. COUNT(DISTINCT ...) evita contar doble las filas multiplicadas por el join.
  3. HAVING filtra después sobre el agregado.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
261
Tokens
78
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 55 segundos.

Escribe este fragmento

Paso 9 de 9 en Joins; paso 17 de 22 en Joins y agregación.

← Anterior Siguiente →