Nutzerumsätze nach Monat pivotieren
Als Nächstes sagt dir Eve, dass die C-Level-Executives breite Tabellen langen vorziehen, weil sie sich leichter überfliegen lassen. Sie hat einen Beispielbericht zu Nutzerumsätzen nach Monat vorbereitet, der die Umsätze der ersten 5 Nutzer-IDs von Juni bis August 2018 zeigt. Die Executives haben ihr gesagt, sie solle die Tabelle nach Monat pivotieren. Diese Aufgabe hat sie an dich weitergegeben.
Pivotiere die Abfrage der Nutzerumsätze nach Monat so, dass die Nutzer-ID eine Zeile ist und jeder Monat von Juni bis August 2018 eine Spalte.
Diese Übung ist Teil des Kurses
<Kurs>Business-Daten mit SQL analysieren</Kurs>Übungsanweisungen
- Aktiviere
CROSSTAB()austablefunc. - Definiere die Spalten der neuen Pivot-Tabelle: Nutzer-ID und die ersten drei Monate des Betriebs.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
-- 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;