Comece agoraComece grátis

Pivotando as receitas por usuário e mês

Em seguida, Eve informa que os executivos C-level preferem tabelas largas em vez de longas, porque são mais fáceis de ler. Ela preparou um relatório de exemplo com as receitas por usuário e por mês, detalhando as receitas dos 5 primeiros IDs de usuário de junho a agosto de 2018. Os executivos pediram que ela pivotasse a tabela por mês. Ela repassou essa tarefa para você.

Pivote a consulta de receitas por usuário e por mês para que o ID do usuário fique nas linhas e cada mês de junho a agosto de 2018 seja uma coluna.

Este exercicio faz parte do curso

Análise de Dados de Negócios em SQL

Ver curso

Instruções do exercicio

  • Habilite CROSSTAB() do tablefunc.
  • Declare as colunas da nova tabela pivot, o ID do usuário e os três primeiros meses de operação.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

-- 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 e Executar Código