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

Oracle tự tham gia bắt đầu với giá trị tối thiểu (tháng) cho mỗi phân vùng

Sử dụng MIN() như một chức năng cửa sổ:

select t.*,
       (case when col2 < add_months(min(col2) over (partition by col1), 3)
             then col3
        end) as imputed_col3
from t;

Lưu ý:If col2 không phải là ngày tháng, bạn có thể chuyển đổi nó:

select t.*,
       (case when to_date(col2, 'YYYYMM') < add_months(min(to_date(col2, 'YYYYMM')) over (partition by col1), 3)
             then col3
        end) as imputed_col3
from 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. Oracle 11g - Chạy con trỏ PL / SQL

  2. Ý nghĩa chính xác của việc có một điều kiện như trong đó 0 =0 là gì?

  3. Làm cách nào để thay đổi lược đồ mặc định trong sql developer?

  4. Làm thế nào để chạy tập lệnh cụ thể sau khi kết nối với oracle bằng đường ray?

  5. Chọn nhân viên có ngày sinh trong phạm vi nhất định bằng Oracle SQL