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

mysqlでの時間の経過に伴う実行中の合計レコードの増加を取得します

    投稿されたスタックオーバーフローの回答に基づいて、変数を組み込んだソリューションを使用することになりましたここ 。このソリューションは、提供されている他の回答よりも少し柔軟で効率的であるように見えます。

      SELECT u.date,
      @running_total := @running_total + u.count AS count
      FROM (
        SELECT COUNT(*) AS count, DATE_FORMAT(FROM_UNIXTIME(created), '%b %d %Y') AS date
        FROM {users}
        WHERE created >= :start_time AND created <= :end_time
        GROUP BY YEAR(FROM_UNIXTIME(created)), MONTH(FROM_UNIXTIME(created)), DAY(FROM_UNIXTIME(created))
      ) u
      JOIN (
        SELECT @running_total := u2.starting_total
        FROM (
          SELECT COUNT(*) as starting_total
          FROM {users}
          WHERE created < :start_time
        ) u2
      ) initialize;
    

    group by、日付の書式設定、および範囲の要件は、単に私の特定のプロジェクトの詳細であることに注意してください。 このソリューションのより一般的な形式(元の質問による)は次のようになります:

      SELECT u.date,
      @running_total := @running_total + u.count AS count
      FROM (
        SELECT COUNT(*) AS count, DATE(FROM_UNIXTIME(created)) AS date
        FROM {users}
        GROUP BY date
      ) u
      JOIN (
        SELECT @running_total := 0
      ) initialize;
    


    1. Barmanを使用したPostgreSQLのバックアップ-概要

    2. ダイナミックピボットMySQL

    3. MySQLサーバーでの再接続が終了しました

    4. Green-DAOで双方向1:mを処理する正しい方法