typestar

Colapsar un grupo en una cadena en SQL

A veces la respuesta no es un número sino la lista misma.

SELECT
    o.id,
    COUNT(*) AS lines,
    GROUP_CONCAT(
        i.sku,
        ', '
        ORDER BY i.sku
    ) AS skus
FROM orders AS o
JOIN order_items AS i
    ON i.order_id = o.id
GROUP BY o.id;

Cómo funciona

  1. GROUP_CONCAT une los valores de un grupo con un separador.
  2. ORDER BY dentro de la llamada vuelve la salida estable entre corridas.
  3. DISTINCT dentro de un agregado quita repetidos antes de combinar.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
157
Tokens
49
Ritmo de tres estrellas
85 tpm

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

Escribe este fragmento

Paso 4 de 4 en Agrupación; paso 8 de 22 en Joins y agregación.

← Anterior Siguiente →