Inizia subitoInizia gratis

Pivotare i ricavi per utente per mese

Ora Eve ti dice che i dirigenti C-level preferiscono tabelle larghe invece di lunghe perché sono più facili da scansionare. Ha preparato un report di esempio dei ricavi per utente per mese, con i ricavi dei primi 5 ID utente da giugno ad agosto 2018. I dirigenti le hanno detto di pivotare la tabella per mese. Ha passato il compito a te.

Esegui il pivot della query dei ricavi per utente per mese in modo che l'ID utente sia una riga e ciascun mese da giugno ad agosto 2018 sia una colonna.

Questo esercizio fa parte del corso

Analizzare i dati aziendali in SQL

Visualizza corso

Istruzioni dell'esercizio

  • Abilita CROSSTAB() da tablefunc.
  • Dichiara le colonne della nuova tabella pivot: l'ID utente e i primi tre mesi di attività.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

-- 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;
Modifica ed esegui il codice