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

Sự khác biệt về thời gian giữa các bản ghi

Đây là Oracle 9i +, sử dụng hàm LAG để nhận giá trị dấu thời gian trước đó mà không cần phải tự tham gia:

SELECT t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp) AS diff
  FROM YOUR_TABLE t

... nhưng vì các số nguyên đại diện cho số ngày trong kết quả, sự khác biệt dưới 24 giờ sẽ là một phần nhỏ. Ngoài ra, LAG sẽ trả về NULL nếu không có giá trị nào trước đó - giống như khi bạn sử dụng OUTER JOIN.

Để xem số phút, hãy sử dụng hàm ROUND:

SELECT ROUND((t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp)) *1440) AS diff_in_minutes
  FROM YOUR_TABLE t


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đầu ra mong muốn với dữ liệu bảng nhất định

  2. PL / SQL trích xuất tên cột câu lệnh SELECT từ truy vấn tùy chỉnh

  3. Các cụm đếm SQL Oracle

  4. tại sao truy vấn mất quá nhiều thời gian

  5. Kết xuất (các) bảng Oracle vào câu lệnh INSERT