Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tính toán trung bình, phương sai và độ lệch chuẩn của hai số trong hai hàng / cột khác nhau bằng sql / PHP vào các ngày cụ thể

Có dễ dàng như thêm ngày vào nhóm group by không . Đây là cú pháp sẽ hoạt động trong cả MySQL và SQLite, dựa trên ngày vào thời gian kết thúc và giả sử thời gian kết thúc được lưu trữ dưới dạng ngày giờ:

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

Nếu được lưu trữ dưới dạng dấu thời gian, hãy xem nhận xét của 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. Lưu trữ an toàn HTML trong DB mà không ảnh hưởng đến mã hóa ký tự

  2. Hộp biểu mẫu nhập HTML không điền giá trị PHP sau dấu cách đầu tiên

  3. Ràng buộc khóa ngoại không thành công

  4. PDO Kết nối bằng mật khẩu được mã hóa?

  5. Làm cách nào để tìm nạp các danh mục và danh mục con trong một truy vấn duy nhất trong sql? (mysql)