EmpezarEmpieza gratis

Hacer un pivot de los ingresos por usuario y mes

Ahora, Eve te comenta que a los ejecutivos del C‑level les gustan más las tablas anchas que las largas porque se leen más rápido. Ha preparado un informe de ejemplo con los ingresos por usuario y por mes, detallando los ingresos de los 5 primeros IDs de usuario de junio a agosto de 2018. Los ejecutivos le pidieron hacer un pivot de la tabla por mes. Te ha pasado esa tarea.

Haz un pivot de la consulta de ingresos por usuario y mes para que el ID de usuario sea una fila y cada mes de junio a agosto de 2018 sea una columna.

Este ejercicio forma parte del curso

Análisis de datos empresariales en SQL

Ver curso

Instrucciones del ejercicio

  • Habilita CROSSTAB() desde tablefunc.
  • Declara las columnas de la nueva tabla dinámica: el ID de usuario y los tres primeros meses de operación.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

-- Import tablefunc
CREATE EXTENSION IF NOT EXISTS ___;

SELECT * FROM CROSSTAB($$
  SELECT
    user_id,
    DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
    SUM(meal_price * order_quantity) :: FLOAT AS revenue
  FROM meals
  JOIN orders ON meals.meal_id = orders.meal_id
 WHERE user_id IN (0, 1, 2, 3, 4)
   AND order_date < '2018-09-01'
 GROUP BY user_id, delivr_month
 ORDER BY user_id, delivr_month;
$$)
-- Select user ID and the months from June to August 2018
AS ct (___ INT,
       ___ FLOAT,
       ___ FLOAT,
       ___ FLOAT)
ORDER BY user_id ASC;
Editar y ejecutar código