Conversion Duration Analysist
CDA
 WITH datawithday AS (
         SELECT combined.branch,
            combined.source,
            combined.sremarks,
            combined.medium,
            combined.mremarks,
            combined.convert_by,
            date(combined."timestamp") AS inbound,
            date(combined.convert_date) AS convert_date,
            GREATEST(0::double precision, date_part('day'::text, combined.convert_date - combined."timestamp")) AS day
           FROM combined
          WHERE combined."timestamp" IS NOT NULL AND combined.convert_date IS NOT NULL
        ), groupeddata AS (
         SELECT datawithday.branch,
            datawithday.source,
            datawithday.sremarks,
            datawithday.medium,
            datawithday.mremarks,
            datawithday.convert_by,
            datawithday.inbound,
            datawithday.convert_date,
            datawithday.day,
            count(*) FILTER (WHERE datawithday.convert_date IS NOT NULL) AS total_data
           FROM datawithday
          GROUP BY datawithday.branch, datawithday.source, datawithday.sremarks, datawithday.medium, datawithday.mremarks, datawithday.convert_by, datawithday.inbound, datawithday.convert_date, datawithday.day
        )
 SELECT branch,
    source,
    sremarks,
    medium,
    mremarks,
    convert_by,
    inbound,
    convert_date,
    total_data,
    day
   FROM groupeddata
  ORDER BY day;Penjelasan Fungsi Query
Query ini bertujuan untuk menganalisis durasi waktu (dalam hari) antara inbound (tanggal pertama data masuk berdasarkan kolom "timestamp") dan convert_date (tanggal data dikonversi), dikelompokkan berdasarkan beberapa atribut seperti branch, source, sremarks, medium, mremarks, dan convert_by.
Bagian 1: CTE DataWithDay
CTE ini melakukan langkah awal untuk memproses data mentah:
Mengambil data dari tabel
public.combined.Menghitung durasi waktu dalam hari (
day) antaraconvert_datedantimestamp.DATE_PART('day', convert_date - "timestamp")menghitung selisih hari.GREATEST(0, ...)memastikan hasil tidak negatif.
Mengambil kolom yang relevan:
branch,source,sremarks(source remarks),medium,mremarks(medium remarks), danconvert_by.Kolom
inbound(timestampdalam bentuk tanggal).Kolom
convert_date.
Bagian 2: CTE GroupedData
CTE ini mengelompokkan data berdasarkan kolom branch, source, sremarks, medium, mremarks, convert_by, inbound, convert_date, dan day:
Mengelompokkan data menggunakan
GROUP BY.Setiap kombinasi unik dari kolom tersebut dihitung.
Menghitung jumlah total data (
total_data) untuk setiap kelompok.COUNT(*) FILTER (WHERE convert_date IS NOT NULL)menghitung jumlah baris dengan nilaiconvert_dateyang tidak null.
Bagian 3: Final SELECT
Mengambil data dari
GroupedDatadengan kolom:Atribut grup:
branch,source,sremarks,medium,mremarks,convert_by.Tanggal:
inbounddanconvert_date.Durasi waktu:
day.Jumlah total data:
total_data.
Mengurutkan hasil berdasarkan
day(durasi waktu dari inbound hingga convert) untuk melihat siapa yang paling cepat atau paling lama melakukan konversi.
Interpretasi Hasil Query
Hasil dari query ini akan membantu Anda menjawab:
Berapa hari rata-rata yang dibutuhkan seseorang dari pertama kali data masuk (
inbound) hingga mereka dikonversi (convert_date).Distribusi waktu konversi berdasarkan atribut seperti
branch,source, dan lainnya.Jumlah total data (
total_data) untuk setiap kombinasi grup yang dikonversi.
Last updated