Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitung rata-rata, varians dan standar deviasi dari dua angka dalam dua baris/kolom yang berbeda dengan sql / PHP pada tanggal tertentu

Apakah semudah menambahkan tanggal ke dalam group by . Berikut adalah sintaks yang harus berfungsi di MySQL dan SQLite, mendasarkan tanggal pada waktu akhir dan dengan asumsi waktu akhir disimpan sebagai waktu tanggal:

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

Jika disimpan sebagai cap waktu, lihat komentar Marty.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menangani sesi di berbagai perangkat?

  2. apa fungsi alternatif mysql_list_tables() di php 5?

  3. Strategi pembaruan massal SQLAlchemy

  4. Tinyint vs Bit?

  5. Bagaimana cara menulis pemicu untuk membatalkan penghapusan di MYSQL?