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

COUNTを使用したMySQLランニングトータル

    更新された回答

    OPは、現在の合計を計算するために変数を使用するのとは別にユーザー変数を設定する必要がないように、単一クエリのアプローチを求めました。

    SELECT d.date,
           @running_sum:[email protected]_sum + d.count AS running
      FROM (  SELECT date, COUNT(*) AS `count`
                FROM table1
               WHERE date > '2011-09-29' AND applicationid = '123'
            GROUP BY date
            ORDER BY date ) d
      JOIN (SELECT @running_sum := 0 AS dummy) dummy;
    

    ユーザー変数の「インライン初期化」は、他の分析関数のシミュレーションにも役立ちます。実際、私はこのテクニックをこのような の回答から学びました。 。

    元の回答

    @running_sumを表にするには、囲みクエリを導入する必要があります COUNT(*)されたレコードに対して:

    SET @running_sum=0;
    SELECT d.date,
           @running_sum:[email protected]_sum + d.count AS running
      FROM (  SELECT date, COUNT(*) AS `count`
                FROM table1
               WHERE date > '2011-09-29' AND applicationid = '123'
            GROUP BY date
            ORDER BY date ) d;
    

    この回答 もご覧ください 。



    1. MySQLデータベースにDECIMALを挿入する方法

    2. 3つ以上の連続したレコードが欠落していることを示す最良の方法

    3. 文字列に少なくとも数字が含まれているかどうかを検出するにはどうすればよいですか?

    4. MySqlの保護されたキーワードと同じ名前を共有するテーブルのSQLを作成するにはどうすればよいですか?