PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Membuat Total Periode Bergulir

Mengetahui total kunjungan atau pengguna atau aktivitas yang berjalan selama periode waktu bergulir adalah cara yang baik untuk menganalisis kinerja situs web atau aplikasi Anda. Istilah pencarian "Laporan Bergulir 12 Bulan" memiliki lebih dari 12 juta hasil pencarian, dan para ahli percaya bahwa laporan bergulir adalah salah satu cara terbaik untuk menunjukkan tren. Mengganti periode waktu Anda untuk tampilan tahunan atau 12 bulan, bergantung pada kasus penggunaan Anda, sama bermanfaatnya.

Misalnya, menganalisis tren pengunjung situs web harian selama periode waktu enam bulan dapat menunjukkan informasi yang berharga, tetapi tidak menunjukkan tren selama periode waktu yang lebih kecil dalam cakupan bagan. Ini hanya akan menampilkan tren keseluruhan.

Jika Anda ingin mendapatkan wawasan untuk mengidentifikasi periode pertumbuhan atau penurunan, analisis tren bergulir dapat membantu Anda mengidentifikasi periode ini. Bagan di bawah ini menunjukkan data yang sama seperti yang terlihat di atas, disusun pada interval harian, dalam format tren 7 Hari yang bergulir.

Dengan Tampilan Bergulir Periode 7 Hari ini, Anda dapat melihat lebih dari sekadar tren keseluruhan yang terlihat di grafik garis total harian. Di sini Anda dapat melihat tren mikro dalam keseluruhan pengalaman yang dapat mengungkapkan informasi yang lebih mendalam untuk organisasi Anda. Dalam contoh kami di sini, kami dapat melihat keseluruhan tren pengunjung berdasarkan hari naik di grafik pertama kami, tetapi grafik kedua kami mengungkapkan 7 periode berturut-turut dalam tren keseluruhan kami yang memiliki arah ke bawah. Wawasan semacam ini dapat membantu kami mengidentifikasi periode tren penurunan yang mungkin bertepatan dengan upaya pemasaran yang berhasil atau tidak.

Permintaan

Untuk membuat kueri ini, kami ingin mengetahui beberapa hal:

  1. Periode bergulir. Contoh 12 bulan, 30 Hari, atau 7 Hari. Dalam kasus kami:7 Hari.
  2. Metrik yang kami analisis:pengunjung per hari.

Kueri akan terdiri dari subkueri yang berbeda. Pertama, gunakan generate_series untuk menetapkan baris dalam tabel untuk semua tanggal dalam rentang tanggal dari awal hingga akhir rentang tanggal di kolom visitors.created_date, yang akan dipanggil dalam pernyataan SELECT utama. Subquery ini akan berfungsi sebagai tabel yang akan kita pilih.

Subquery kedua akan masuk ke bagian utama dan mengembalikan jumlah semua pengunjung unik yang mengunjungi situs kami dalam periode 7 hari. Subkueri ini akan berfungsi sebagai kolomnya sendiri di kueri utama, dan akan menghitung pengunjung yang berbeda dari "hari" hingga 7 hari sebelum "hari".

Dengan menggabungkan semuanya, kita dapat menghasilkan tren pengunjung per Hari dalam periode 7 Hari:

    SELECT
        day,
        (
          SELECT
              COUNT(DISTINCT "Visitors"."visitor_id") AS "Visitors"
          FROM
              "public"."visitors" AS "Visitors"
          WHERE  
              "Visitors"."created_date" BETWEEN b.day - 7 AND b.day + 1
        )
    FROM  (SELECT
            generate_series(
                            MIN(DATE_TRUNC('day', "Visitors"."created_date")::DATE),
                            MAX(DATE_TRUNC('day', "Visitors"."created_date")::DATE),
                            '1d')::date as day
            FROM "public"."visitors" AS "Visitors"
          ) as b
    GROUP BY day                        
    ORDER BY day

Menguji matematika. Kita dapat menguji matematika di sini dalam tabel berikut. Lihat langkah-langkah jeda yang menetapkan 7 hari sebelumnya ke kolom Hitungan, dan kolom total yang akan sama dengan Kolom Pengunjung.

Dengan matematika kami dikonfirmasi, kami dapat mempercayai fungsi ini untuk memberi kami tampilan keseluruhan dari total periode bergulir yang berjalan. Kueri di atas dapat disesuaikan untuk menampilkan periode waktu yang berbeda tergantung pada kasus penggunaan Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa meletakkan database di bawah git (kontrol versi)?

  2. Menghitung jumlah kemunculan substring dalam string di PostgreSQL

  3. Batas ukuran tipe data JSON di PostgreSQL

  4. PG::DuplicateTable:ERROR:postingan relasi sudah ada

  5. PostgreSQL:INSERT Serbaguna