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

Trước đó có nghĩa là gì trong Oracle?

Rõ ràng là bạn đang truy vấn một bảng T với các cột WIN_30_DUR , AGENT_MASTER_IDROW_DT (trong số những người khác). Hãy nhớ rằng các từ khóa như OVER , PARTITION cho thấy bạn đang sử dụng một yêu cầu phân tích:những yêu cầu như vậy cho phép bạn lấy thông tin về hàng hiện tại từ những hàng khác, điều này sẽ phức tạp và mất nhiều thời gian để viết với GROUP BY hoặc các điều khoản "tiêu chuẩn" khác.

Tại đây, trên một hàng nhất định, bạn:

  • nhóm (PARTITION ) bởi AGENT_MASTER_ID :cái này lấy tất cả các hàng của T với AGENT_MASTER_ID hiện tại
  • trong phân vùng đã hình thành bạn ORDER hàng theo ROW_DT
  • thứ tự này cho phép bạn chọn 30 hàng trước ROW_DT hiện tại :đây là ý nghĩa của PRECEDING từ khóa (0 sẽ chọn hàng hiện tại, ngược lại là FOLLOWING mệnh đề)
  • sau đó bạn tính tổng trên WIN_30_DUR lĩnh vực

Theo ngôn ngữ thông thường, điều này có nghĩa là:đối với mỗi đại lý, hãy lấy tổng khoảng thời gian của 30 ngày trước đó.



  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àm thế nào để có được số người dựa trên các nhóm tuổi bằng cách sử dụng truy vấn SQL trong cơ sở dữ liệu Oracle?

  2. Loại trừ các mục theo hồ sơ

  3. Tham gia bên ngoài Oracle với điều kiện bộ lọc trên bảng thứ hai

  4. Truy vấn số / nhóm Oracle

  5. SQL:Cách thêm giá trị theo cột chỉ mục