Kullanıcı gelirlerini aya göre pivotlama
Sırada, Eve sana üst düzey yöneticilerin taraması daha kolay olduğu için uzun tablolar yerine geniş tabloları tercih ettiğini söylüyor. Haziran–Ağustos 2018 arasında ilk 5 kullanıcı kimliğinin gelirlerini ayrıntılandıran, kullanıcı gelirlerinin aya göre örnek bir raporunu hazırlamış. Yöneticiler tablonun ay bazında pivotlanmasını istemiş. Bu görevi sana devretti.
Kullanıcı ID'sinin satır, 2018 Haziran'dan Ağustos'a kadar her ayın sütun olduğu şekilde, kullanıcı gelirlerini aya göre sorguyu pivotla.
Bu egzersiz, kursun bir parçasıdır
SQL ile İş Verilerini Analiz Etme
Egzersiz talimatları
tablefunciçindenCROSSTAB()'ı etkinleştir.- Yeni pivot tablonun sütunlarını tanımla: kullanıcı ID'si ve operasyonun ilk üç ayı.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- 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;