Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Oblicz średnią, wariancję i odchylenie standardowe dwóch liczb w dwóch różnych wierszach/kolumnach za pomocą sql / PHP w określonych dniach

Czy to tak proste, jak dodanie daty do group by . Oto składnia, która powinna działać zarówno w MySQL, jak i SQLite, opierając datę na czasie zakończenia i zakładając, że czas zakończenia jest przechowywany jako data-godzina:

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

Jeśli jest przechowywany jako znacznik czasu, zobacz komentarz Marty'ego.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDOException w Connector.php wiersz 47:SQLSTATE[HY000] [1045] Odmowa dostępu dla użytkownika 'hassan'@'localhost' (przy użyciu hasła:TAK)

  2. Najlepszy sposób na uniknięcie zduplikowanych wpisów do bazy danych mysql

  3. Nie można upuścić pola w tabeli MariaDB/MySql za pomocą FOREIGN KEY

  4. Czy sha1() w PHP i SHA() w MySQL dadzą ten sam wynik?

  5. Jak zmodyfikować kolumnę MySQL, aby zezwolić na wartość NULL?