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

जब मैं अजगर पांडा में एक निर्देश के रूप में पैरामीटर पास करता हूं, तो read_sql क्वेरी एक खाली डेटाफ़्रेम लौटाती है

हां, मुझे पूरा विश्वास है कि आपकी समस्या पैरामीटर बाइंडिंग (and %(target)s in ('ACT') के माध्यम से आपकी क्वेरी में कॉलम नाम सेट करने का प्रयास करने के परिणामस्वरूप होती है। ) जैसा कि टिप्पणियों में बताया गया है।

इसके परिणामस्वरूप आपकी क्वेरी परिणाम सेट को रिकॉर्ड तक सीमित कर देती है जहां 'status' in ('ACT') (यानी क्या स्ट्रिंग 'स्थिति' एक सूची का एक तत्व है जिसमें केवल स्ट्रिंग 'ACT' है?) यह निश्चित रूप से गलत है, इसलिए कोई रिकॉर्ड नहीं चुना जाता है और आपको एक खाली परिणाम मिलता है।

यह अपेक्षा के अनुरूप काम करना चाहिए:

import psycopg2.sql

col_name = 'status'
table_name = 'public.churn_data'
query_params = {'date_from':'201712',
                'date_to':'201805',
                'drform_target':'NPA'
               }

sql_data_sample = """select * 
                     from {0} 
                     where dt = %(date_to)s 
                     and {1} in (%(drform_target)s)
                     ----------------------------------------------------
                     union all
                     ----------------------------------------------------
                     (select * 
                      from {0} 
                      where dt  = %(date_from)s 
                      and {1} in ('ACT') 
                      order by random() limit 50000);"""

sql_data_sample = sql.SQL(sql_data_sample).format(sql.Identifier(table_name), 
                                                  sql.Identifier(col_name))

df_data_sample = pd.read_sql(sql_data_sample,con = cnxn,params = query_params)



  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. PostgreSQL - BYTEA कॉलम में बेस 64 इमेज स्ट्रिंग्स कैसे डालें?

  3. SQL आईडी अनुक्रम सिंक से बाहर क्यों जाते हैं (विशेष रूप से पोस्टग्रेज़ का उपयोग करके)?

  4. docker-compose up &&docker-compose build:PostgreSQL के साथ त्रुटि

  5. pgAdmin में एक ER डायग्राम बनाएं