PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कैसे अजगर का उपयोग कर एक परिणाम वस्तु में लगातार 2 पंक्ति मूल्यों की तुलना करने के लिए?

यद्यपि आप स्वयं अपने प्रश्न को हल करने में कामयाब रहे, यहां एक उपाय है जो विंडो फ़ंक्शंस का उपयोग नहीं करता है, अर्थात् lag() या lead() . up_date . के बीच अंतर की तुलना करने के लिए लगातार समस्या लॉग के टाइमस्टैम्प आप स्वयं शामिल हो सकते हैं। SQL में क्वेरी कुछ इस तरह दिख सकती है

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 );

और SQLAlchemy में भी ऐसा ही 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. मैं PostgreSQL में बड़े गैर-अवरुद्ध अद्यतन कैसे करूं?

  2. PostgreSQL दृश्य:एक परिकलित फ़ील्ड को दूसरे परिकलित फ़ील्ड में संदर्भित करना

  3. PostgreSQL में फ़ंक्शन से गतिशील तालिका बनाएं

  4. फीनिक्स के साथ एक्टो क्वेरी में श्रेणी के अनुसार अधिकतम तिथि समूह के साथ आईडी का चयन कैसे करें?

  5. पोस्टग्रेज में अलग () फ़ंक्शन (क्वालीफायर का चयन नहीं)