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

Cách so sánh 2 giá trị hàng liên tiếp trong đối tượng tập kết quả bằng python

Mặc dù bản thân bạn đã giải quyết được câu hỏi của mình, nhưng đây là một câu trả lời không sử dụng các hàm cửa sổ, đó là lag() hoặc lead() . Để so sánh sự khác biệt giữa up_date dấu thời gian của nhật ký sự cố liên tiếp mà bạn có thể tự rời khỏi tham gia. Trong SQL, truy vấn có thể trông giống như

select    ilx.id
from      issue_logs ilx
join      rt_status rsx on rsx.id = ilx.to_status
left join issue_logs ily on  ily.from_status = ilx.to_status
                         and ily.issue_id = ilx.issue_id
where     ilx.up_date >= '2018-09-06T16:34'
and       ilx.up_date <= ( coalesce(ily.up_date, '2018-09-14T12:27') -
                           interval '1 minute' * rsx.duration_in_min );

và tương tự trong SQLAlchemy Ngôn ngữ biểu thức SQL :

from_datetime = '2018-09-06T16:34'
to_datetime = '2018-09-14T12:27'

ilx = issue_status_logs.alias()
ily = issue_status_logs.alias()
rsx = rt_status

query = select([ilx.c.id]).\
    select_from(
        ilx.
        join(rsx, rsx.c.id == ilx.c.to_status).
        outerjoin(ily, and_(ily.c.from_status == ilx.c.to_status,
                            ily.c.issue_id == ilx.c.issue_id))).\
    where(and_(ilx.c.up_date >= from_datetime,
               ilx.c.up_date <= (func.coalesce(ily.c.up_date, to_datetime) -
                                 cast('1 minute', Interval) *
                                 rsx.c.duration_in_min)))


  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ách thực hiện thứ tự không phân biệt chữ hoa chữ thường trong Rails với postgresql

  2. Với sqlalchemy cách liên kết động với công cụ cơ sở dữ liệu trên cơ sở mỗi yêu cầu

  3. Lưu trữ PostgreSQL ARRAY của các giá trị ENUM

  4. Lỗi khi sử dụng đối sánh mẫu không giống bất kỳ mẫu nào trong PostgreSQL

  5. PostgreSQL:Vòng lặp cho đến khi một điều kiện là đúng