Mysql
 sql >> база данни >  >> RDS >> Mysql

Изчислете средната стойност, дисперсията и стандартното отклонение на две числа в два различни реда/колони с sql / PHP на конкретни дати

Лесно ли е да добавите датата в 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравняване на решения за репликация от Oracle и MySQL

  2. Получаване на датата/часа на последната промяна в MySQL база данни

  3. MySQL TIMEDIFF() срещу TIMESTAMPDIFF():Каква е разликата?

  4. Използването на MySqlConnection (.NET) за SSL свързване с MySql-сървър се проваля от определени клиенти

  5. Връщане на n-тия запис от MySQL заявка