ÎncepețiÎncepe gratuit

Pivotarea veniturilor utilizatorilor pe luni

Eve îți spune că directorii executivi preferă tabelele largi în locul celor lungi, deoarece sunt mai ușor de parcurs. Ea a pregătit un raport exemplu cu veniturile utilizatorilor pe luni, detaliind veniturile primilor 5 utilizatori din iunie până în august 2018. Directorii i-au cerut să pivoteze tabelul după lună. Acum ți-a transmis această sarcină ție.

Pivotează interogarea cu veniturile utilizatorilor pe luni astfel încât ID-ul utilizatorului să fie un rând, iar fiecare lună din perioada iunie–august 2018 să fie o coloană.

Acest exercițiu face parte din cursul

Analiza datelor de business în SQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Activează CROSSTAB() din tablefunc.
  • Declară coloanele noului tabel pivot: ID-ul utilizatorului și primele trei luni de activitate.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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;
Editează și rulează codul