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

日付でグループ化されたMySQL累積合計

    新しい回答

    最初は、あなたが現在の合計をしようとしていることを理解していませんでした。これがどのように見えるかです:

    SET @runningTotal = 0;
    SELECT 
        e_date,
        num_interactions,
        @runningTotal := @runningTotal + totals.num_interactions AS runningTotal
    FROM
    (SELECT 
        DATE(eDate) AS e_date,
        COUNT(*) AS num_interactions
    FROM example AS e
    GROUP BY DATE(e.Date)) totals
    ORDER BY e_date;
    

    元の回答

    参加したために重複が発生する可能性があります。たぶん、e1はいくつかの行に複数の一致があり、カウントを膨らませています。それまたはあなたの結合の比較はまた秒を比較しています、それはあなたが期待するものではありません。

    とにかく、日時フィールドを日と月に切り刻む代わりに、そこから時間を取り除くだけです。これがその方法です。

    SELECT
       DATE(e.Date) AS e_date,
       count(e.ID) AS num_interactions
    FROM example AS e
    JOIN example e1 ON DATE(e1.Date) <= DATE(e.Date)
    GROUP BY DATE(e.Date);
    


    1. 数値のある列のタイプをvarcharからintに変更します

    2. 「アクティブ」フラグかどうか?

    3. ひねりを加えたHekaton:インメモリTVP –パート3

    4. PostgreSQLのチェック制約を理解する