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

MySQL:chọn truy vấn, tăng 5 phút

Phần sau sẽ giúp bạn lấy một mẫu bao gồm bất kỳ dữ liệu nào có dấu thời gian tại:00,:05,:10 ...

SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
    AND mod(minute(time),5) = 0

Tôi đang sử dụng hàm modulo để kiểm tra xem phần phút của thời gian có (0 hoặc) chia hết cho 5.

Nếu bạn chỉ cần một kết quả cho mỗi phân đoạn thời gian, chúng tôi sẽ phải phức tạp hơn một chút.

SELECT concat(date(time),' ',hour(time),':',round(minute(time)/5,0)*5), 
       min(temp_out), avg(temp_out), max(temp_out) 
FROM wmr200 
GROUP BY date(time), hour(time), round(minute(time)/5,0)*5

Tôi không có quyền truy cập vào một phiên bản MySQL để kiểm tra nó ngay bây giờ, nhưng đây là ý tưởng. Nó nhóm theo năm phút một lần, nhóm theo ngày, giờ và round(minute(time)/5,0)*5 - làm tròn phút đến 5 gần nhất.

Nó chọn giá trị thời gian mà nó sẽ được nhóm xung quanh và temp_out tối thiểu, trung bình và tối đa, vì tôi không chắc cái nào trong số này sẽ áp dụng tốt nhất cho tình huống của bạn.

Tuy nhiên, nếu DB của bạn không có dữ liệu trong khoảng thời gian năm phút (hoặc khoảng thời gian 30 phút, nếu đó là những gì bạn đang sử dụng), nó vẫn có thể không có dữ liệu cho một điểm mẫu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cảnh báo:mysql_connect ():Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:CÓ)

  2. Đối tượng TransactionScope có được hỗ trợ đầy đủ bằng MySqlConnector cho .NET không?

  3. Chỉ định lược đồ trong Pandas to_sql

  4. Cơ sở dữ liệu mẫu MySQL

  5. Làm cách nào để chỉ trích xuất các cột có giá trị khác 0 trong mysql và php?