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

時間間隔ごとのイベントのグループ化とカウント、および現在の合計

    date_trunc()を使用します タイムスタンプを月に切り捨て、年と月の両方を1つの列でカバーします。 to_char()を使用できます 好きなようにフォーマットします。

    補足の質問で言及した実行カウントを取得するには、ウィンドウ関数<を追加します。 / a> :

    SELECT to_char(date_trunc('month', period_start), 'Mon YYYY') AS month
         , count(*) AS month_ct
         , sum(count(*)) OVER (ORDER BY date_trunc('month', period_start)) AS running_ct
    FROM   activity_log
    WHERE  action = 'create_entry'
    GROUP  BY date_trunc('month', period_start);
    

    sqlfiddle Psotgres9.6の場合
    db <> fiddle こちら Postgres12の場合

    ウィンドウ関数はに実行されます 集計関数。これにより、同じクエリレベルの集計に対してウィンドウ関数を実行できます。関連:

    ウィンドウ関数とGROUP BYで同じ基本式を使用することが不可欠です。 :date_trunc('month', period_start)



    1. Oracleの別のデータベースからselectとしてテーブルを作成するにはどうすればよいですか?

    2. Java:OracleからBlobを読み取る

    3. MYSQL-異なるデータベースからのSELECT

    4. 最新のエントリを選択します