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

SqlAlchemy के साथ अलग (पोस्टग्रेज) का उपयोग करने का सही तरीका क्या है?

आप जो देख रहे हैं वह है DISTINCT ON ... ORDER BY Postgresql में मुहावरा परिणाम (N =1 ) इसलिए समूह बनाने और एकत्र करने के बजाय बस

event_list = Table.query.\
    distinct(Table.name).\
    filter_by(**filter_by_query).\
    filter(*queries).\
    order_by(Table.name, Table.timestamp.desc()).\
    all()

यह नाम से "समूहीकृत" पंक्तियों का चयन करेगा, जिसमें सबसे बड़ा टाइमस्टैम्प मान होगा।

आप अधिकांश समय तारक का उपयोग नहीं करना चाहते हैं, वैसे भी अपने आवेदन कोड में नहीं, जब तक कि आप मैन्युअल एड-हॉक क्वेरी नहीं कर रहे हैं। तारांकन मूल रूप से "FROM . के सभी कॉलम हैं टेबल/रिलेशन", जो बाद में आपकी धारणाओं को तोड़ सकता है, यदि आप कॉलम जोड़ते हैं, उन्हें पुन:व्यवस्थित करते हैं, और इस तरह।

यदि आप अंतिम परिणाम में टाइमस्टैम्प के आधार पर परिणामी पंक्तियों को ऑर्डर करना चाहते हैं, तो आप उदाहरण के लिए Query.from_self() क्वेरी को सबक्वेरी में बदलने के लिए, और संलग्न क्वेरी में ऑर्डर करने के लिए:

event_list = Table.query.\
    distinct(Table.name).\
    filter_by(**filter_by_query).\
    filter(*queries).\
    order_by(Table.name, Table.timestamp.desc()).\
    from_self().\
    order_by(Table.timestamp.desc()).\
    all()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डीबी को कॉल करते समय ::चुनें कि मुझे कनेक्शन रीसेट संदेश क्यों मिलता है?

  2. NHibernate और PostgreSQL के साथ कॉलम नाम उद्धृत करना

  3. PostgreSQL में SET इंटरवलस्टाइल (इंटरवल आउटपुट बदलें) को कैसे ट्विक करें?

  4. स्ट्रिंग को कैसे विभाजित करें और इसे उसी तालिका में नई लाइन के रूप में कैसे डालें?

  5. क्या मैं postgresql के फ़ंक्शन में \ copy कमांड का उपयोग कर सकता हूं?