sql >> データベース >  >> RDS >> PostgreSQL

ローリング期間の累計を作成する方法

    ローリング期間における訪問数、ユーザー数、アクティビティ数の累計を知ることは、ウェブサイトやアプリのパフォーマンスを分析するための良い方法です。 「12か月のローリングレポート」という検索用語には1200万を超える検索結果があり、専門家はローリングレポートが傾向を示すための最良の方法の1つであると信じています。ユースケースに応じて、期間を年間または12か月のビューに置き換えることも、同様に洞察に満ちています。

    たとえば、6か月間の毎日のウェブサイト訪問者の傾向を分析すると、貴重な情報を表示できますが、グラフの範囲内のより短い期間の傾向は表示されません。全体的な傾向のみが表示されます。

    成長または衰退の期間を特定するための洞察を得たい場合は、ローリングトレンド分析がこれらの期間を特定するのに役立ちます。下のグラフは、上記と同じデータを1日間隔で並べた、7日間のローリングトレンド形式で示しています。

    この7日間のローリングビューを使用すると、1日の合計折れ線グラフに見られる全体的な傾向以上のものを見ることができます。ここでは、全体的なエクスペリエンス内のマイクロトレンドを確認できます。これにより、組織にとってはるかに洞察に満ちた情報を明らかにすることができます。ここでの例では、日ごとの訪問者の全体的な傾向が最初のグラフで上昇していることがわかりますが、2番目のグラフでは、全体的な傾向内で下降方向の連続する7つの期間が示されています。この種の洞察は、効果があった、または効果がなかったマーケティング活動と一致する可能性のある下降傾向の期間を特定するのに役立ちます。

    クエリ

    このクエリを作成するには、いくつかのことを知りたいと思います。

    1. ローリング期間。例12か月、30日、または7日。私たちの場合:7日。
    2. 分析している指標:1日あたりの訪問者数

    クエリはさまざまなサブクエリで構成されます。まず、generate_seriesを使用して、メインのSELECTステートメントで呼び出されるvisitors.created_date列の日付スパンの最初から最後までの日付スパンのすべての日付にテーブルの行を割り当てます。このサブクエリは、選択するテーブルとして機能します。

    2番目のサブクエリはメインセクションに移動し、7日間にサイトにアクセスしたすべてのユニークな訪問者の数を返します。このサブクエリは、メインクエリの独自の列として機能し、「日」から「日」の7日前までの個別の訪問者をカウントします。

    すべてをまとめると、7日間で1日あたりの訪問者のローリングトレンドを生成できます。

        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
    

    数学をテストします。次の表で数学をテストできます。過去7日間を[カウント]列に割り当てるラグステップと、[訪問者]列と同じ合計列を参照してください。

    計算が確認されたら、この関数を信頼して、ローリング期間の現在の合計の全体像を把握できます。上記のクエリは、ユースケースに応じてさまざまな期間を表示するように調整できます。


    1. MySQL-クエリの実行に許可される最大時間を制限できますか?

    2. EXCEPT演算子とNOTIN演算子の違いを理解する

    3. generate_series()でカウントクエリに参加し、Null値を「0」として取得します

    4. Homebrewでicu4cバージョン63をインストールする