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

特定の日付のsql/PHPを使用して、2つの異なる行/列の2つの数値の平均、分散、および標準偏差を計算します

    日付をgroup byに追加するのと同じくらい簡単ですか 。これは、MySQLとSQLiteの両方で機能する構文であり、終了時刻に基づいて終了時刻が日時として格納されていると想定しています。

    SELECT ID, thedate, AVG(diff) AS average,
       AVG(diff*diff) - AVG(diff)*AVG(diff) AS variance,
       SQRT(AVG(diff*diff) - AVG(diff)*AVG(diff)) AS stdev,
       MIN(diff) AS minTime,
       MAX(diff) AS maxTime
    FROM (SELECT t1.id, t1.endTimestamp, DATE(endtimestamp) as thedate,
                 min(t2.startTimeStamp) - t1.endTimestamp AS diff
          FROM table1 t1 INNER JOIN
               table1 t2
               ON t2.ID = t1.ID AND t2.subject = t1.subject AND
                  t2.startTimestamp > t1.startTimestamp  -- consider only later startTimestamps
         WHERE t1.subject = 'entrance'
         GROUP BY t1.id, t1.endTimestamp
        ) AS diffs
    GROUP BY ID, thedate
    

    タイムスタンプとして保存されている場合は、マーティのコメントを参照してください。




    1. GreenDAOは、テーブル間の複数の関係をサポートします

    2. タイムスタンプの値を比較し、変更された場合はそれぞれに値を割り当てます

    3. zendのデータベースでテーブルの列名を取得するにはどうすればよいですか?

    4. mysqlのエイリアスでのフィルタリング