Conversion Duration Analysist

CDA

time_to_convert
 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:

  1. Mengambil data dari tabel public.combined.

  2. Menghitung durasi waktu dalam hari (day) antara convert_date dan timestamp.

    • DATE_PART('day', convert_date - "timestamp") menghitung selisih hari.

    • GREATEST(0, ...) memastikan hasil tidak negatif.

  3. Mengambil kolom yang relevan:

    • branch, source, sremarks (source remarks), medium, mremarks (medium remarks), dan convert_by.

    • Kolom inbound (timestamp dalam 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:

  1. Mengelompokkan data menggunakan GROUP BY.

    • Setiap kombinasi unik dari kolom tersebut dihitung.

  2. Menghitung jumlah total data (total_data) untuk setiap kelompok.

    • COUNT(*) FILTER (WHERE convert_date IS NOT NULL) menghitung jumlah baris dengan nilai convert_date yang tidak null.

Bagian 3: Final SELECT

  1. Mengambil data dari GroupedData dengan kolom:

    • Atribut grup: branch, source, sremarks, medium, mremarks, convert_by.

    • Tanggal: inbound dan convert_date.

    • Durasi waktu: day.

    • Jumlah total data: total_data.

  2. 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